Hello on a activity task of a case i want to introduce a formula considering the whole name of the current user / current user contact (I don't understand the difference)

I use [#System variable.Current user contact.Name#], but not recognize Name, aldo try using value, which is the correct way to get the name?

"Estimado " + [#System variable.Current user contact.Name#]+", le recordamos que debe completar su Declaración de Conflicto de Intereses en un plazo no más allá de "+[#System setting.Dias para completar Declaración#].ToString() +" dias."

 

Thanks

Like 1

Like

3 comments

Hello Julio,

To test everything on my side I've created a process like on the screenshot http://prntscr.com/phwxfh. This process creates an activity with following subject: "Test activity" + " "+ [#Read Contact record.First item of resulting collection.Full name#] + " " + "end of subject". And here is the result of this process http://prntscr.com/phwxxv. So please modify your process using my process as an example so to paste contact name inside some string field value.

Regards,

Oscar

Thanks Oscar

 

@oscar is really easiest, in my case i was to use [#Main record.Contact.Full name#]

Show all comments

Hi,

I need to show a pricelist lookup items based on organisation role of logged user.



Like:  If i have five option inside the pricelist lookup(Base,Franchisee,RRP,Retail,SellPriceTier) ,



only user based on there organisational role can view only 3 options of lookup values(Base,Franchisee,RRP) and hide other values.



Please suggest me how to make it possible .



Thanks

Like 0

Like

5 comments

Dear Jitendra,

In order to implement the filter please do the following:

1. Create a replacing client module for the “ProductSelectionSchema” schema.

2. Create the “applyProductPriceItemsEsq” method that should override the corresponding method from the “ProductSelectionQueryUtilitiesMixins” schema.

Please see the screenshot with the code example below:

https://prnt.sc/pdgera

Best regards,

Norton

Thanks for the reply.



Can you please guide me how can I apply the filter in  "Product prices" in the product detail page.

I want to hide some pricelist option from the grid. 

 

Dear Jitendra,

In order to implement the filter please do the following:

1. Create a replacing client module for the “ProductPageV2” schema.

2. Create a method for filtration.

3. Override the “ProductPriceDetail” object from the “details” section. Please see the screenshot with the code example below:

https://prnt.sc/pk2d16

Best regards,

Norton

Norton Lingard,

Thanks for the reply.



 I am facing issue to make filter syntax for the query.

The table relation is as:

Product Pricelist table "ProductPrice" with column ["productId"] ,["PriceListId"].



To provide the pricelist visible lookup with name ["UsrProductPriceFilter"] with column ["UsrPriceList"] of pricelist lookup.



Please help me to write the correct syntax for filter the above list.



 

Show all comments

I have a customized section and when I save a record I would like to create x records of another customized section and setting values to the new records. The number of records (x) to create is variable.

 

How can I achieve this? I tried to create multiple records with a process but I have not managed to do so.

 

Thanks in advance.

Like 0

Like

1 comments

Hello! 

You can do this with the business process: 

1) You would need to create a parameter NumberOfRecordsToCreate where you would store your x (the amount of records that need to be created)

2) Create 2 elements: add data and formula, in add data create one record and populate needed fields, in formula set the parameter NumberOfRecordsToCreate to NumberOfRecordsToCreate - 1:

http://prntscr.com/pclnmz

http://prntscr.com/pclnq9

http://prntscr.com/pclns5

3) Create a conditional and default flows from the Function element, default leading to the further part of the process, condition should check if NumberOfRecordsToCreate > 0 and if it is - lead to the add data: 

http://prntscr.com/pclo4x

http://prntscr.com/pclo9f

Best regards,

Dennis

Show all comments

Hello,

 

I have a Contact entity with some details.

In other entity (named NewEntity), I want to have access to some details (Addresses) from Contact entity.

Pratical example: I have a detail wizard in NewEntity that has columns that are fields from addresses detail in Contact entity.

How can I do that?

 

Thank you

Like 0

Like

1 comments

Dear Carolina,

It would not be possible to add such detail. Basically if you add contact address detail in the new entity, you will not be able link the particular address to the contact. It can only be done using the development tools to filter the addresses by the required contact. 

I suggest you to add the detail with editable list which can filter the addresses by contacts. Here is the development guide how to do it. 

https://academy.bpmonline.com/documents/technic-sdk/7-13/adding-detail-editable-list

Best regards,

Dean

Show all comments

We have a microservice to send us information from other database, for example, a list of contacts, and we want to receive that information and show it in the screen (in the section of contacts) without save it in the BPM's database. How can we do this? Can we use Odata or Odata can only work with information from the BPM's database?

 

We were also trying to get a list of entities from a web service in a business process, but can we show that list on a section without saving it in BPM's database?

 

Best regards

Like 0

Like

11 comments

Dear Carolina,

Please check this article, there you can find the algorithm of how to implement such task within the system. In our development cases we usually create detail which load data from external services, but you can adjust the given example up to your business task. Please note, that it requires development skills:

https://community.bpmonline.com/articles/add-virtual-detail-page

Hope you will find it helpful!

Regrads,

Anastasia

Anastasia Botezat,

We are seeing this article but we have some problems.

 

We have a service, we have a response 200 OK but it seems that you aren't using the code we have in Visual Studio.

The service to call is a POST with two properties (two strings) in request and this struture in response:

{
    "content": [
        {
            "accountId": "IQSB263",
            "productName": "Super Savings",
            "accountStatus": "ACTIVE",
            "activationDate": "2019-07-26T14:00:46Z",
            "amount": 0.09,
            "interestRate": null,
            "maturityDate": null
        },
        {
            "accountId": "SYCQ537",
            "productName": "Fixed Deposit Product",
            "accountStatus": "ACTIVE",
            "activationDate": "2019-07-29T09:12:38Z",
            "amount": 1000.0,
            "interestRate": null,
            "maturityDate": null
        }
    ],
    "errors": []
}

 

Code in VS:

[OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "GetSavingsAccountByCustomer", RequestFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
        public async Task<string> GetSavingsAccountByCustomer(string url, string httpMethod)
        {
            var client = new HttpClient
            {
                BaseAddress = new Uri("http://25.80.134.70:18001/corebanking/")
            };
            //client.BaseAddress = new Uri("http://192.168.1.23:18001/corebanking/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 
            //GetCustomers
            UsrCustomerResponse customers = new UsrCustomerResponse();
            HttpResponseMessage result = new HttpResponseMessage();
 
            result = await client.PostAsync("", new StringContent(
                new JavaScriptSerializer().Serialize(new CustomerRequest()
                {
                    Url = url,
                    HttpMethod = httpMethod
                    //Url = "GET",
                    //HttpMethod = "/account/savings/customer/8a80cb816b6a4de2016b6a52565a0000?page=0&size=5"
                })));
 
            if (result.IsSuccessStatusCode)
            {
                customers = JsonConvert.DeserializeObject<UsrCustomerResponse>(await result.Content.ReadAsStringAsync());
            }
 
            var res = new SelectQueryResponse
            {
                RowsAffected = customers.Customers.Count,
                Success = (customers.Message == "CallCenterServices.Success." ? true : false),
                Rows = customers.Customers,
                RowConfig = RowConfig,
                ErrorInfo = new ErrorInfo
                {
                    Message = customers.Message
                }
            };
 
            return JsonConvert.SerializeObject(res);
        }

 

On virtual detail in bpm, we have this code:

define("UsrSchema8Detail", ["ServiceHelper"], function(ServiceHelper) {
    return {
        entitySchemaName: "UsrEntitySavingAccount",
        methods: {
            sortColumn: this.Terrasoft.emptyFn,
            loadGridData: this.Terrasoft.emptyFn,
            init: function() {
                this.callParent(arguments);
 
                this.set("IsGridEmpty", true);
                this.set("IsGridDataLoaded", true);
 
                this.loadSearchItems();
            },
            loadSearchItems: function() {
                this.set("MaskId", Terrasoft.Mask.show({timeout: 0}));
                this.set("IsGridEmpty", true);
                this.set("IsGridLoading", true);
                this.set("IsGridDataLoaded", false);
                var url = "/account/savings/customer/8a80cb816b6a4de2016b6a52565a0000?page=0&size=5";
                var httpMethod = "POST";
                var serviceConfig = {
                    serviceName: "UsrServiceSavingsAccountByCustomer",
                    methodName: "GetSavingsAccountByCustomer",
                    timeout: 120000,
                    data: {
                    	Url: url,
                    	HttpMethod: httpMethod
                    }
                };
                this.callService(serviceConfig, function(responseJson) {
                    this.set("IsGridLoading", false);
                    this.set("IsGridDataLoaded", true);
                    if (!this.Ext.isEmpty(responseJson)) {
                        var response = this.Ext.decode(responseJson);
                        if (response.success) {
                            if (response.rowsAffected > 0) {
                                this.set("IsGridEmpty", false);
                                var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
                                    rootSchemaName: "UsrEntitySavingAccount"
                                });
                                esq.parseResponse(response, function(result) {
                                    if (result.success) {
                                        var gridData = this.getGridData();
                                        gridData.clear();
                                        gridData.loadAll(result.collection);
                                        Terrasoft.Mask.hide(this.get("MaskId"));
                                    } else {
                                        this.showInformationDialog(result.errorInfo);
                                        Terrasoft.Mask.hide(this.get("MaskId"));
                                    }
                                }, this);
                            }
                        } else {
                            this.showInformationDialog(response.errorInfo.message);
                            Terrasoft.Mask.hide(this.get("MaskId"));
                        }
                    }
                }, this);
            }
        },
        diff: /**SCHEMA_DIFF*/[
            {
                "operation": "merge",
                "name": "DataGrid",
                "values": {
                    "type": this.Terrasoft.GridType.LISTED,
                    "listedConfig": {
                        "name": "DataGridListedConfig",
                        "items": [
                            {
                                "name": "AccountId",
                                "bindTo": "UsrAccountId",
                                "caption": "Account Id",
                                "type": Terrasoft.GridCellType.TEXT,
                                "position": {"column": 1, "colSpan": 2}
                            },
                            {
                                "name": "ProductNameCode",
                                "bindTo": "UsrProductNameCode",
                                "caption": "Product Name/Code",
                                "type": Terrasoft.GridCellType.TEXT,
                                "position": {"column": 3, "colSpan": 3}
                            },
                            {
                                "name": "AccountStatusListedGridColumn",
                                "bindTo": "UsrAccountStatus",
                                "caption": "Account Status",
                                "type": Terrasoft.GridCellType.TEXT,
                                "position": {"column": 6, "colSpan": 4}
                            },
                            {
                                "name": "ApprovedDateListedGridColumn",
                                "bindTo": "UsrApprovedDate",
                                "caption": "Approved Date",
                                "type": Terrasoft.GridCellType.DATE,
                                "position": {"column": 10, "colSpan": 4}
                            },
                            {
                                "name": "DepositAmountListedGridColumn",
                                "bindTo": "UsrDepositAmount",
                                "caption": "Deposit Amount",
                                "type": Terrasoft.GridCellType.NUMBER,
                                "position": {"column": 14, "colSpan": 4}
                            },
                            {
                                "name": "InterestRateListedGridColumn",
                                "bindTo": "UsrInterestRate",
                                "caption": "Interest Rate",
                                "type": Terrasoft.GridCellType.NUMBER,
                                "position": {"column": 18, "colSpan": 3}
                            },
                            {
                                "name": "MaturityDateListedGridColumn",
                                "bindTo": "UsrMaturityDate",
                                "caption": "Maturity Date",
                                "type": Terrasoft.GridCellType.DATE,
                                "position": {"column": 21, "colSpan": 3}
                            }
                        ]
                    },
                    "activeRowActions": [],
                    "activeRowAction": {"bindTo": "onActiveRowAction"},
                    "tiledConfig": {
                        "name": "DataGridTiledConfig",
                        "grid": {"columns": 24, "rows": 1},
                        "items": []
                    }
                }
            }/*, { "operation": "remove", "name": "ToolsButton" }*/
        ]/**SCHEMA_DIFF*/
    };
});

 

On Visual Studio, after attach to process, we can't debug.

 

Best regards.

 

Carolina Silva,

Please check the following article on server code debugging, particularly the section in the end of the article on possible debug issues.

https://academy.bpmonline.com/documents/technic-sdk/7-13/server-code-debugging

Regards,

Anastasia

Anastasia Botezat,

I checked the article, but I still with the same problem.

 

 

We have this response:

{"GetSavingsAccountByCustomerResult":"{\"rowConfig\":{\"UsrAccountId\":{\"dataValueType\":1},\"UsrProductNameCode\":{\"dataValueType\":1},\"UsrAccountStatus\":{\"dataValueType\":1},\"UsrApprovedDate\":{\"dataValueType\":7},\"UsrDepositAmount\":{\"dataValueType\":5},\"UsrInterestRate\":{\"dataValueType\":5},\"UsrMaturityDate\":{\"dataValueType\":7}},\"rows\":[],\"notFoundColumns\":null,\"responseStatus\":null,\"rowsAffected\":0,\"nextPrcElReady\":false,\"success\":false,\"errorInfo\":{\"errorCode\":null,\"message\":null,\"stackTrace\":null}}"}

 

Thank you

Carolina Silva,

Please try to do the following:

1. Re-compile all items the application once more.

2. Check that you have debug settings set as in the article here:

https://academy.bpmonline.com/documents/technic-sdk/7-13/visual-studio-settings-development-file-system

3. Try not to create a project, but just upload files into the Visual Studio and go through the process once again.

Regards,

Anastasia

Anastasia Botezat,

I open Visual Studio with Terrasoft.Configuration.sln and I'm editing and  the file UsrServiceSavingsAccountByCustomer.cs

 

I tried but I'm still with the same problem.

Can you help me?

Thank you :)

Carolina Silva,

Unfortunately, it is hard to tell what exactly could cause such issue. Please capture a video of how you start the process from the very beginning, so we can check steps taken and advise with the solution.

Regards,

Anastasia

Carolina Silva,

Please start the process not from connecting to the w3wp process, but from creating a new project, adding files, compiling system, then attaching to process.

Regards,

Anastasia

Anastasia Botezat,

I'm seeing this article: https://academy.bpmonline.com/documents/technic-sdk/7-13/server-code-debugging

 

On step 3, when I add existing item, my code is different.

My code:

namespace Terrasoft.Configuration.UsrServiceSavingsAccountByCustomer
{
    using System;
    using System.Collections.Generic;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Activation;
    using ErrorInfo = Terrasoft.Nui.ServiceModel.DataContract.ErrorInfo;
    using SelectQueryResponse = Terrasoft.Nui.ServiceModel.DataContract.SelectQueryResponse;
    using DataValueType = Terrasoft.Nui.ServiceModel.DataContract.DataValueType;
    using EntityCollection = Terrasoft.Nui.ServiceModel.DataContract.EntityCollection;
    using Newtonsoft.Json;
    using System.Threading.Tasks;
    using System.Net.Http;
    using System.Web.Script.Serialization;
    using System.ServiceModel.Web;
    using System.Net.Http.Headers;
    using System.Text;
 
    [ServiceContract]
    [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
    public class UsrServiceSavingsAccountByCustomer
    {
        [OperationContract]
        [WebInvoke(Method = "POST",
                    UriTemplate = "/GetSavingsAccountByCustomer",
                    RequestFormat = WebMessageFormat.Json,
                    BodyStyle = WebMessageBodyStyle.Wrapped,
                    ResponseFormat = WebMessageFormat.Json)]
        public async Task<string> GetSavingsAccountByCustomer(string url, string httpMethod)
        {
            var client = new HttpClient
            {
                BaseAddress = new Uri("http://192.168.1.23:18001/corebanking/")
            };
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
 
            //GetCustomers
            UsrCustomerResponse customers = new UsrCustomerResponse();
            HttpResponseMessage result = new HttpResponseMessage();
 
            result = await client.PostAsync("", new StringContent(
                new JavaScriptSerializer().Serialize(new CustomerRequest()
                {
                    Url = url,
                    HttpMethod = httpMethod
                    //Url = "GET",
                    //HttpMethod = "/account/savings/customer/8a80cb816b6a4de2016b6a52565a0000?page=0&size=5"
                })));
 
            if (result.IsSuccessStatusCode)
            {
                customers = JsonConvert.DeserializeObject<UsrCustomerResponse>(await result.Content.ReadAsStringAsync());
            }
 
            var res = new SelectQueryResponse
            {
                RowsAffected = customers.Customers.Count,
                Success = (customers.Message == "CallCenterServices.Success." ? true : false),
                Rows = customers.Customers,
                RowConfig = RowConfig,
                ErrorInfo = new ErrorInfo
                {
                    Message = customers.Message
                }
            };
 
            return JsonConvert.SerializeObject(customers);
        }
 
        public Dictionary<string, object> RowConfig = new Dictionary<string, object> {
            //{"Id", new { dataValueType = DataValueType.Guid }},
            {"UsrAccountId", new { dataValueType = DataValueType.Text }},
            {"UsrProductNameCode", new { dataValueType = DataValueType.Text }},
            {"UsrAccountStatus", new { dataValueType = DataValueType.Text }},
            {"UsrApprovedDate", new { dataValueType = DataValueType.DateTime }},
            {"UsrDepositAmount", new { dataValueType = DataValueType.Float }},
            {"UsrInterestRate", new { dataValueType = DataValueType.Float }},
            {"UsrMaturityDate", new { dataValueType = DataValueType.DateTime }}
        };
    }
 
    [DataContract]
    public class CustomerRequest
    {
        [DataMember]
        public string HttpMethod { get; set; }
        [DataMember]
        public string Url { get; set; }
    }
 
 
    [DataContract]
    public class UsrCustomerResponse
    {
        [DataMember]
        public string Message { get; set; }
        [DataMember]
        public EntityCollection Customers { get; set; }
        public UsrCustomerResponse()
        {
            Customers = new EntityCollection();
        }
    }
 
    public class Customer
    {
        public string accountId { get; set; }
        public string productName { get; set; }
        public string accountStatus { get; set; }
        public DateTime activationDate { get; set; }
 
        public float amount { get; set; }
        public DateTime interestRate { get; set; }
        public DateTime maturityDate { get; set; }
    }
}

Code in file UsrServiceSavingsAccountByCustomerSchema.Dev_Entity.cs

namespace Terrasoft.Configuration
{
 
	using System;
	using System.Collections.Generic;
	using System.Collections.ObjectModel;
	using System.Globalization;
	using Terrasoft.Common;
	using Terrasoft.Core;
	using Terrasoft.Core.Configuration;
 
	#region Class: UsrServiceSavingsAccountByCustomerSchema
 
	/// <exclude/>
	public class UsrServiceSavingsAccountByCustomerSchema : Terrasoft.Core.SourceCodeSchema
	{
 
		#region Constructors: Public
 
		public UsrServiceSavingsAccountByCustomerSchema(SourceCodeSchemaManager sourceCodeSchemaManager)
			: base(sourceCodeSchemaManager) {
		}
 
		public UsrServiceSavingsAccountByCustomerSchema(UsrServiceSavingsAccountByCustomerSchema source)
			: base( source) {
		}
 
		#endregion
 
		#region Methods: Protected
 
		protected override void InitializeProperties() {
			base.InitializeProperties();
			UId = new Guid("0358a0de-530f-40e1-bd81-5f19e4041bdd");
			Name = "UsrServiceSavingsAccountByCustomer";
			ParentSchemaUId = new Guid("50e3acc0-26fc-4237-a095-849a1d534bd3");
			CreatedInPackageId = new Guid("9fd09801-35cc-459d-9248-28c0060f0297");
			ZipBody = new byte[] { 31,139,8,0,0,0,0,0,4,0,237,89,91,79,219,72,20,126,71,234,127,24,249,97,101,87,200,14,236,130,216,82,168,66,104,129,74,1,74,210,237,195,106,31,38,246,9,184,56,182,59,51,14,155,141,242,223,247,140,103,124,119,130,211,74,93,173,68,30,136,51,115,174,223,185,204,241,16,210,25,240,152,186,64,198,192,24,229,209,84,216,131,40,156,250,247,9,163,194,143,66,251,51,103,35,96,115,223,133,17,157,251,225,61,239,187,110,148,132,226,108,49,72,184,136,102,192,118,150,59,4,63,9,199,93,50,90,112,1,179,227,198,10,74,13,2,112,165,72,110,95,64,8,204,119,91,168,238,80,178,63,3,27,85,250,52,240,255,73,109,104,161,211,38,13,35,15,130,103,182,237,62,106,157,55,4,189,103,44,98,87,225,52,34,39,37,223,175,19,191,202,124,78,5,69,64,4,163,174,176,115,158,138,74,144,126,125,74,128,45,238,16,75,244,15,182,16,217,194,93,22,46,105,255,160,65,2,227,69,188,141,216,10,95,197,109,196,87,44,138,96,108,227,125,141,181,44,246,26,158,4,218,46,133,124,228,173,17,27,63,48,160,30,46,216,99,202,31,121,11,197,53,8,251,82,136,184,101,235,11,76,236,145,203,252,88,108,149,25,146,111,131,34,251,18,45,2,198,143,95,181,152,11,127,11,92,87,59,127,106,161,25,20,127,169,213,62,143,81,212,32,154,197,104,204,196,15,16,157,59,248,150,248,12,102,16,10,110,150,127,72,123,16,235,103,88,36,149,173,23,60,75,169,137,147,73,224,187,196,13,40,231,164,67,53,74,30,85,145,169,145,55,49,168,74,174,26,159,238,33,60,87,225,60,122,4,115,8,226,33,242,208,64,227,246,102,52,54,118,115,154,242,231,51,243,199,48,139,3,42,164,43,134,115,1,98,157,21,107,36,72,215,128,139,15,17,155,81,129,50,208,128,33,112,78,239,65,45,165,201,211,206,122,22,121,139,145,88,4,80,97,203,87,237,47,140,198,49,120,235,244,170,210,218,172,216,42,160,209,160,83,190,8,93,34,19,246,45,23,12,61,61,37,27,156,54,21,13,73,88,176,75,244,243,3,230,153,2,215,202,133,47,43,54,206,41,195,224,250,24,126,180,43,132,39,34,83,115,144,46,84,232,150,13,207,206,40,135,190,231,49,116,68,179,98,132,76,67,170,124,227,56,123,191,239,219,123,135,71,246,158,189,255,235,155,189,163,94,111,207,113,35,6,19,26,62,162,97,142,97,85,228,173,142,43,63,149,65,246,57,76,105,18,8,29,54,93,46,216,80,93,192,74,28,4,64,153,105,109,207,136,54,155,210,218,33,120,62,149,13,234,139,47,30,62,37,84,86,131,34,77,91,151,105,96,68,49,10,105,246,58,95,49,64,134,133,218,42,234,28,153,132,25,254,188,178,133,165,146,109,228,125,217,205,40,51,188,154,52,117,135,100,52,178,61,157,50,4,17,71,231,74,225,170,17,152,117,51,115,6,250,68,125,145,129,116,27,113,209,151,25,102,26,198,110,42,107,148,38,141,172,84,220,55,27,1,151,36,31,233,156,170,86,152,117,66,76,60,43,111,139,144,34,91,56,149,226,111,90,13,81,205,108,74,49,99,1,26,41,243,183,117,251,50,79,102,164,42,50,187,149,214,113,148,48,227,226,253,186,126,226,56,21,129,134,67,85,69,57,92,21,152,147,133,203,57,162,71,61,119,114,180,119,56,57,164,191,121,176,223,75,159,14,246,15,14,15,104,15,63,239,98,68,253,164,247,11,71,0,78,14,140,134,182,149,213,200,28,127,74,76,21,22,251,138,143,18,204,76,206,71,130,138,132,15,176,9,91,207,148,94,57,145,100,235,192,144,205,129,201,188,231,89,32,110,38,95,241,156,124,219,146,98,167,166,74,3,173,94,135,27,251,62,245,250,92,165,128,74,11,171,150,139,171,157,70,231,64,25,58,15,91,38,137,103,156,184,139,158,120,127,58,69,46,144,248,231,62,217,131,226,73,198,163,25,61,141,23,50,153,5,87,86,29,39,24,202,1,13,130,1,58,5,217,113,197,109,205,99,27,228,29,17,44,1,242,134,76,105,192,193,106,138,151,134,181,27,212,74,171,6,86,100,200,159,155,100,229,113,79,162,149,255,238,88,25,185,115,164,225,112,51,219,234,157,181,214,11,68,194,194,74,214,140,170,57,83,96,218,236,35,41,111,215,244,41,178,167,148,57,250,104,59,247,211,33,142,178,133,62,218,118,73,148,106,63,173,64,42,177,218,64,186,172,117,227,165,113,229,233,94,182,36,94,109,120,173,12,165,246,69,226,123,100,181,170,134,106,105,96,189,232,131,181,179,36,57,171,181,75,186,101,145,151,184,226,26,223,114,100,85,255,176,60,109,153,234,19,63,46,45,142,89,52,7,15,233,187,154,38,73,199,248,130,212,46,240,28,226,136,251,162,63,147,70,118,148,248,33,136,232,26,251,174,100,253,226,241,113,215,221,190,13,210,134,136,25,195,19,254,251,188,45,50,185,84,18,206,235,173,199,219,244,52,170,79,178,27,7,217,239,25,90,187,14,171,63,107,48,253,207,103,207,94,126,182,63,64,16,68,47,195,231,79,28,62,29,167,24,52,49,72,40,32,197,5,31,119,85,188,213,1,66,92,245,109,213,78,156,182,201,21,253,214,131,107,215,128,103,170,176,232,64,66,122,19,167,183,75,153,237,58,72,242,12,123,25,212,94,6,181,255,203,160,134,65,45,15,89,175,157,29,37,86,221,15,149,111,207,90,238,114,106,47,105,245,139,27,201,61,132,217,4,88,163,251,235,187,133,210,219,211,146,220,131,56,38,92,254,89,109,35,67,190,164,53,153,209,131,244,219,113,90,156,112,156,250,149,84,189,110,52,217,82,127,183,154,162,150,171,198,100,177,107,26,212,69,72,227,106,51,79,198,181,2,53,103,107,39,46,145,149,29,145,159,65,173,147,215,53,103,109,92,113,100,10,117,90,116,2,111,185,38,92,235,17,250,14,32,94,213,25,91,113,40,168,150,175,42,245,209,1,133,130,65,43,107,195,96,205,205,101,213,113,154,189,19,108,118,93,83,199,197,220,223,137,158,150,231,250,205,28,249,76,74,243,127,43,200,165,26,83,157,107,154,206,197,52,29,204,59,202,247,75,211,119,71,150,89,105,196,110,173,234,213,191,144,50,186,246,240,25,0,0 };
		}
 
		#endregion
 
		#region Methods: Public
 
		public override void GetParentRealUIds(Collection<Guid> realUIds) {
			base.GetParentRealUIds(realUIds);
			realUIds.Add(new Guid("0358a0de-530f-40e1-bd81-5f19e4041bdd"));
		}
 
		#endregion
 
	}
 
	#endregion
 
}

 Is it normal?

I have access to source code on ..\Terrasoft.WebApp\Terrasoft.Configuration\Autogenerated\Src

 

Thank you

Carolina Silva,

System exports schemas as they are in the configuration. Seems you either have not saved the source code, or you are referring to two different schemas.

 

Show all comments

I am customizing the Cases and I would like to have only assignees that are part of the assignment group. How is it feasible ?

Like 0

Like

1 comments

Dear Lehmann,

There is no out of the box functionality that would allow to filter assignee values lookup. However, it can be achieved with the development tools. Here is the example:

1. Create a new object and use it as a source for a new lookup. The object should contain information about the lookup values that should be visible for user groups.  

https://academy.bpmonline.com/documents/technic-sdk/7-12/creating-entity-schema?document=

https://academy.bpmonline.com/documents/administration/7-13/creating-and-registering-lookups

2. Build a filter on the lookup. 

Here is the community post 

https://community.bpmonline.com/questions/lookup-field-filter

The filter should represent the query. Here is the example:

select *

from lookup l

join LinkTable lt on lt.lId = l.Id

join SysAdminUnitInRole sau on sau.SysAdminRoleId = lt.RoleId

where sau.SysAdminUniId = CurrentUserId

If the filter doesn't work you can try to catch the request with sql server profiler and debug the functionality. 

More details on how to create complex queries for filters can be found here:

https://academy.bpmonline.com/documents/technic-sdk/7-13/entityschemaquery

Best regards,

Dean

Show all comments

Hi,

 

I'd like to add additional timezones into the exising Base time zone lookup, (namely time zones used in Australia external territories, such as UTC+10:30 for Lord Howe Island) but it appears that there isn't an option to add an additional New record to that lookup or modify any of the values shown

bpmonline.com/0/Nui/ViewModule.aspx#LookupSectionModule/TimeZoneLookupPage

 

How do I add/modify the timezones in my bpm online instance?

 

Yours Sincerely,

 

Lachlan Devantier

eevi.life

Like 0

Like

7 comments

Dear Lachlan,

Lookup "Time zones" is a system lookup that is locked for editing because those values are needed for login in the system. After adding new value user with this time zone will be unable to log into the system, so this is why it is locked. Our R&D team responsible for this functionality is already working on the implementing this functionality in the future releases. 

Best regards,

Angela

Hi Angela,

Do you have a firm estimate on exactly when that will be?  Also, why are all the Time Zones in BPM Online using the old GMT naming convention when UTC superseded it in 1967?  Considering the full TZ database is provided freely by IANA (https://www.iana.org/time-zones), I find it puzzling that this was not already implemented within your application prior to it's worldwide release?

Yours Sincerely,

Lachlan Devantier

eevi.life

Lachlan Devantier,

Those values were taken from Windows timezone lookup and remained in this format. This format does not create any issues with integrations because API can receive such dates while working with .Net Framework.

As for now there is no ETA for this implementation. I will forward your post to the team in order to increase the importance of this functionality.

Best regards,

Angela

Hi Angela,

Then what version of Windows are you using in your infrastructure for BPM'Online?  Windows 2008?  The latest docs for Windows 10/Windows server clearly show the Time Zone display names using the UTC prefix instead of GMT), (https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/d…) and I can confirm my copy of Windows 10 Pro certainly knows about the UTC+10:30 Time zone for Lord Howe Island.

Yours Sincerely,

Lachlan Devantier

eevi.life

 

 

 

Lachlan Devantier,

Those values were taken from it once and did not change afterwards. 

Best regards,

Angela

Angela Reyes,

Hi Angela, Quick related question. 



Is daylight saving handled by the system? If yes, How? I only find 'standard' times in the default time zone look up

M Shrikanth,

Yes, DST is implemented to Creatio application. If the user selects a time zone that uses DST (some countries do not have it) it will be shifted according to the DST rules. 

 

Best regards,

Angela

Show all comments

I just installed a brand new local environment (SalesEnterprise_Marketing_ServiceEnterprise) and I can't even log in. 

When I click the login button, nothing happens. Chrome console shows that the request to http://localhost/ServiceModel/AuthService.svc/Login returns with 404.

I have checked that the service file is there, I gave the AppPool user complete permission over the root directory and everything therein. Here is a screenshot of what's installed for IIS: http://prntscr.com/oidka4 (names in Dutch).

Any idea what could be causing this? To me it feels like I missed a setting, but that wouldn't explain why older environments suddenly broke. This suddenly started happening last week.

Like 0

Like

4 comments

For those of you bumping into this later: apparently some update had uninstalled http activation of WCF services.... Re-enabling that fixed the login issue.

Jonas Van der Aa,

Useful !

Jonas Van der Aa,

 

Thank you! You saved my day :)

Thank you

Show all comments

Good day. I have a big task, and the last part is sending the document through a web service.

Generally speaking, I need to send not only a document, but an array of objects, among which there are documents. Documents will be in PDF format.

As I could see, the "Content type" field is protected from changes and is always JSON.

Is there any simple (or at least some) way to accomplish the task sent to me?

I have an example of performing this task in Java and there the document is loaded into the stream and then passed as an attribute ContentReference, but I do not understand how to implement this in bpm'online ..

Like 0

Like

3 comments

It's hard to understand where you want to send the document from. From bpm'online to a third party, or vise versa. If it's from bpm'online please do that via c# in a Script task in a business process. If it's vise versa, please use the same web service that we call when we add a new file to a "File" detail. Please use Fiddler in order to find the service name. 

Eugene Podkovka,

Thank you very much, I finally realized that I had to do this through C# in the Script task, but now I have another problem.

I found a code (https://stackoverflow.com/questions/17027159/how-send-a-pdf-by-post-htt…) that converts the PDF file into bytes and sends them via HttpWebRequest, but I don’t know how to get a document file.

I mean, the Server.MapPath method is used in this example, but I cannot do this. I only know that this document should be on the "Attachments and notes" tab in Contact. Is there a way to get a link to the desired document (by name, etc.) Or use the MapPath function?

I am also trying to figure out how to attach more data than just a file, because the file is just one of them. The following is the complete structure:



If you have any suggestions or tips, please, help me.

Dear Pavlo,

Please note that all documents are saved in the database in the appropriate table. For example, documents from the “Attachments and notes” tab from the Contact section are saved in the “ContactFile” table and have the object name “Contact attachment”. Therefore, it’s possible to read it like ordinary data from the database.

Please note that the column with data of the document has name “Data” and type “varbinary(max)”. In order to read data from the database please use “Read data” element of business process or use ESQ in the code of the Script task element.

Please find more detail instructions about reading and using data in the Script task element from the link below:

https://community.bpmonline.com/questions/how-read-entity-lookup-column-script-task

Best regards,

Norton

Show all comments

I've recently moved a package I'm developing to a new (more updated) environment (7.14.2) and when I try to open the section wizard it locks up.

 

When I check my developer console I see that it triest to access http://localhost/0/rest/SectionService/GetSectionTypes and http://localhost/0/rest/SectionService/GetGeneralAndSspSections but gets a 404 in return.

 

Any idea why this would not be working?

 

Like 0

Like

7 comments
Best reply

For anyone stumbling upon this later. The Terrasoft.Configuration solution in 7.14 contains extra packages out of the box that I had deleted before setting up git and cloning my own code. This had caused the problem.

I fixed it by copying just the package code into the existing Configuration solution's Pkg folder.

It's hard to say due to lack of information. The correct way of transferring a package between different versions is upgrading the dev application, then transferring the package. The upgrading and the transferring should not throw any exceptions. If they threw, please save installation/upgrade log and restore the application database from backup. 

Hi Eugene,

The package was transferred using git. 

The exception also happens when I open the wizard on any unmodified pages. 

The problem seems to be getting worse though, so I will recreate the environment again.

Is there anything special I am supposed to do to enable the /0/rest endpoint?

Hmmm, something else must be going on. I have set up a completely new environment and I can't even log in anymore. It gives a 404 when trying to locate the AuthService.svc.

Jonas Van der Aa,

Please restore the application from backup and It should work if it worked before. Please use transferring changes via packages (right click on a package -> export package, installed applications -> install from file). This way the system will control the installation. If you use GIT then you have to control everything and resolve all conflicts on your own.

Hello Eugene,

I have tried this, but now the package does not export to the file system so I cannot work on it and submit my changes to git.

I don't have a problem manually resolving the conflicts, if only the software would tell me what they are. The endpoint I mentioned in my original point is an OOB endpoint that suddenly stops working after I import the package from disk (after git clone).

Jonas Van der Aa,

If you work with GIT and in the file system then you have to control everything on your own. The system will not tell where an issue is. 

A version control system such as GIT or SVN can be used only for transferring changes between dev environments that certainly should be on the same version.

If you're transferring the package to a pre-production or to a production application, then please use package import/export functionality without development in the file system.

As for now, please restore the application from the backup that was created when the application worked properly, then disable development in the file system, make sure that it's possible to make changes in the package and compile the system. Then please feel free to enable the development in the file system again. 

For anyone stumbling upon this later. The Terrasoft.Configuration solution in 7.14 contains extra packages out of the box that I had deleted before setting up git and cloning my own code. This had caused the problem.

I fixed it by copying just the package code into the existing Configuration solution's Pkg folder.

Show all comments