Hi,

 

I am trynna use Data Import Wizard just to check the import mapping of my fields with the BPMOnline fields for the contacts table but all I get is this as in the image below. Not sure why teh fields are not showing up.

 

Any suggestions?

 

Or if I ma doing the process wrong, please let me know.

 

Thanks in advance.

Like 0

Like

3 comments
Best reply

Got it sorted by removing the columns from the Excel that would not match with the Columns in tables within Bpm Online and it worked fine.

Not sure how that worked out but was able to upload the contacts.

Angela Reyes writes:

Hello,

Please submit a case to support@bpmonline.com. We will be glad to help you!

Best regards,

Angela

Not sure what's the point of having a "community" is then if you're gonna give solutions via emails.

 

But will do that.

Got it sorted by removing the columns from the Excel that would not match with the Columns in tables within Bpm Online and it worked fine.

Not sure how that worked out but was able to upload the contacts.

Angela Reyes writes:

Show all comments



Hello,

We need to assign Accounts(and other related custom objects) to different groups(Organizational roles) based on a field in the Account object. The field is similar to the "Assignees Group" field in the "Case" object.

We need to do this in bulk for all the records after some data is imported. Is there a way to update the AccountAccessRights so that the access rights can be refreshed for all the Accounts at once? If there is an example somewhere we can refer to that would be helpful.

We have looked into the business process approach, but it is slow as it starts a new process for each record processed and we see thousands of backlogged processes in the system.

Thank you

Like 0

Like

1 comments

Hello,



you can create and run process like this. Don't forget to set "Maximum number of repetitions" parametr > count of your Accounts

Another method is to write Update for database table SysAccountRights



Ask for more details if you need 

Show all comments

I have problems with this Custom Lookup. I want to manage it through the pop-out window.

I have chenged the Access rights to match what I want. But the so called default page is not reacting to this at all. Do I need a custom page for New, Edit and Copy actions of the Lookup values?

How do I create a custom Lookup page? And do the New, Edit, Copy buttons require a custom lookup page?

I am having problems finding out how to do it. Even though I have done this before, I have forgotten.

I can't even find what I need in the academy. What I can't find does not seem to be enough https://academy.bpmonline.com/documents/administration/7-13/lookup-prop…

Lookup properties:

 

Like 0

Like

1 comments

Dear Julius,

The actions Edit, Copy, Delete are avaliable for those lookups, which are based on object with edit page. Therefore, in order to have such actions you need to create an edit page for your object.

In order to do so you need:

1. Create a new Schema of the Edit page View model

2. Indicate entitySchemaName property to the object of the lookup and create an edit page, you can take any other edit page as an example

3. Register your edit page in the SysModuleEdit table, where you indicate object - page relationship.

After this you will have the actions for the lookup. Another option to do so is to register a section for your custom object on which lookup is based. In this case edit page will be created automatically in the course of creating a section.

Regards,

Anastasia

Show all comments

Hi Community,

we have the following problem, when we make a data load through the consumption of a "REST - WebService"

We would like to know how we could fix the "parse" error so that the execution does not fall ?. This happens when reading a JSON from the WebService.

 

 

 

Newtonsoft.Json.JsonException: Unexpected character while parsing path: 

   at Newtonsoft.Json.Linq.JsonPath.JPath.ParseMain()

   at Newtonsoft.Json.Linq.JToken.SelectToken(String path, Boolean errorWhenNoMatch)

   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillServiceParameterValues(IEnumerable`1 parameters, JToken responseToken, Dictionary`2 parameterValues)

   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillComplexArray(ServiceParameter parameter, JArray jsonArray)

   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillArrayValues(JToken token, ServiceParameter parameter, Type valueType)

   at Terrasoft.Services.Runtime.JsonResponseBodyParser.FillServiceParameterValues(IEnumerable`1 parameters, JToken responseToken, Dictionary`2 parameterValues)

   at Terrasoft.Services.Runtime.JsonResponseBodyParser.Parse(String body, Dictionary`2 dataAdapters)

   at Terrasoft.Services.Runtime.ServiceClientResponse.FillInBodyParameters(Dictionary`2 parameterValues)

   at Terrasoft.Services.Runtime.ServiceClientResponse.ParseResponse()

   at Terrasoft.Services.Runtime.ServiceClientResponse.get_ParameterValues()

   at Terrasoft.Services.WebServiceUserTaskImplementation.FillResponseParameters(IServiceClientResponse response, ProcessWebService userTask, IProcessParametersMetaInfo schema)

   at Terrasoft.Services.WebServiceUserTaskImplementation.Execute(ProcessWebService userTask, ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.Execute(ProcessExecutingContext context)

Like 0

Like

1 comments

Hello,



Basically, the error means that system receives an unexpected json object from web service.



If you use business process element "call web service" to make requests to external web service you should check web service settings.



In case you make a request to a web service via script task i.e. c# code, you should check your code for incorrect casts. 



Also you can simply catch requests and responses from web services via fiddler. With fiddler you are able to view headers, body and other request parameters.



Best regards,

Alex

Show all comments

I have a client who does marketing for their customers and aim towards their (their customers) own Leads and Customers.Their need is handling their customers Leads and Contacts. Not just their own.

To do this the client want to isolate one of their customers Contacts and Leads from each other. They concidered having separate enrironments for every one of their cusomers.

The client want to have Customer As Contacts separate from Cusomer Bs Contacts.

Is there a way in bpm'online to have data in the system be isolated in some kind of way?

Like 0

Like

2 comments

Dear Julius,

You may add new types for Leads and Contacts that will separate them (or any other mark that will make a difference between records) and use process that will distribute access rights accordingly to the type of the record and everything connected with it. To ease access rights distribution you may create separate roles for each customer. 

Best regards,

Angela

Angela Reyes,

Yes I agree this is the best way. This client has very special ideas.

Show all comments
Question
Dear



We have an instance of bpmOnline which has a project you have already developed and which we want to see some screens on mobile devices and of course use the modules that bpmOnline already has built-in.

The problem is that we can not develop this same project in mobile mode, and for us it is very important to achieve it. In this case, we have investigated how to activate a bpm business process signal online from an external application and thus be able to insert data through a web service. Next, the situation is plotted.

In particular, our external application (Mobile created in another language), will take the JSON, call the bpm object online and insert this data into the database.

_______________________________________________________-

 

Estimados

Tenemos una instancia de bpmOnline la cual contiene un proyecto ya desarrollado y el cual queremos ver algunas pantallas en dispositivos mobiles y por supuesto utilizar los módulos que bpmOnline ya tiene incorporado.

El problema es que no podemos desarrollar este mismo proyecto en modo Mobile, y para nosotros es muy importante lograr hacerlo. Ante esto hemos estado investigando el como activar una señal de un procesos de negocios de bpmOnline desde una aplicación externa y así poder hacer una inserción de datos mediante un servicio web. A continuación se grafica la situación.

En concreto, seria que nuestra App externa(Mobile creada en otro lenguaje), tomara el JSON, llamara al objeto de bpmOnline e insertara estos datos en la BD.

File attachments
Like 0

Like

1 comments

Hello, 



You can use ProcessEngineService.svc web service for this purposes. Please check the article below: 

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

Best regards,

Dennis

Show all comments

Hi,

       I use EntitySchemaQuery to get Entity, but I can't get primary key value of result entity. The exception said: not found "Id" (something likes this)

EntitySchemaQuery esqDetails = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "UsrExportDetails");

            esqDetails.AddColumn("Id");

            esqDetails.AddColumn("UsrCodeLevel1");

            esqDetails.Filters.Add(esqDetails.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrExport", id));

            var exportDetails = esqDetails.GetEntityCollection(UserConnection);

            

            foreach    (var details in exportDetails)

            {

                var refId = details.GetTypedColumnValue("Id");

                var qrCodeRefId = details.GetTypedColumnValue("UsrCodeLevel1Id");

                

                this.Push(refId, qrCodeRefId, name, address, tel, fax);

            }

Like 0

Like

2 comments

Hi Toan Mai,

Try to name your Id column:

var idColumnName = esq.AddColumn("Id").Name;

then you can get in your foreach loop:

entity.GetTypedColumnValue<Guid>(idColumnName);

At least it worked for me.

Got the same thing yesterday : 

Replace :

esqDetails.AddColumn("Id");

 by 

esqDetails.PrimaryQueryColumn.IsAlwaysSelect = true;

And you can use the following to get the Id column : 

var recordId = details.PrimaryColumnValue;

 

Show all comments

I have a process that creates multiple orders from an Opportunity.  The orders are separated by a service location field (due to pricing and installation).  I need to filter a detail on the Order page by the service location on the order.  I tried using the filterMethod that I saw in an example, but it either doesn't filter or there is nothing returned at all.  Can anyone spot what I am doing wrong?

            "OpportunityProductDetailV2bd737a92": {
                "schemaName": "OpportunityProductDetailV2",
                "entitySchemaName": "OpportunityProductInterest",
                "filter": {
                    "detailColumn": "Opportunity",
                    "masterColumn": "Opportunity"
                }
                "filterMethod": "productLocationFilter"
            }

 

		methods: {
			productLocationFilter: function(){
				var filterGroup = new Terrasoft.createFilterGroup();
				filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;
				var recordId = this.get("[Opportunity].Id");
				//var orderId = this.get("Id");
				//var serviceLocationForOrder = this.get("AtsServiceLocation").value;
				var esqOpportunity = Ext.create("Terrasoft.EntitySchemaQuery", {
					rootSchemaName: "OpportunityProductInterest"	
				});
				esqOpportunity.addColumn("Opportunity");
				esqOpportunity.addColumn("AtsLocation.AtsAccAddress", "AtsAccAddress");
				var oppFilter = esqOpportunity.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", recordId);
				var OppId = "";
				var LocationId = "";
				esqOpportunity.filters.add(oppFilter);
				esqOpportunity.getEntityCollection(function(result) {
					//var respString = "";
					result.collection.each(function (item) {
						//respString += "ItemID: " + item.get("Opportunity").value + ";";
						OppId = item.get("Opportunity").value;
						LocationId = item.get("AtsAccAddress").value;
					});
					//window.alert(OppId + ", " + LocationId + ";" + serviceLocationForOrder + "~" + orderId);	
				},  this);
 
				filterGroup.add("OpportunityFilter", 
					Terrasoft.createColumnFilterWithParameter(
						Terrasoft.ComparisonType.EQUAL, "Opportunity", OppId));
				//var locationId = this.get("AtsLocation");
				filterGroup.add("LocationFilter", 
					Terrasoft.createColumnFilterWithParameter(
						Terrasoft.ComparisonType.EQUAL, "AtsLocation", LocationId));
				//filterGroup.add("ServiceLocationFilter",
					//this.Terrasoft.createColumnFilterWithParameter(
						//this.Terrasoft.ComparisonType.EQUAL, "[Order.AtsServiceLocation].Id", serviceLocationForOrder));
				return filterGroup;
			}
		}

 

Like 0

Like

3 comments

Hi,

I guess the problem is in your asynchronous code. You cannot use your OpportunityId and AtsAccAddress values from esq callback in your filter since it is asynchronous - it is being called after your filter return is already finished.

Dmitriy.

Hello Timothy,



Please note on the Dmitry comment, so you should transform your code to the linear structure. 



Also check the links with examples:

https://community.bpmonline.com/articles/filtering-details-several-fiel…



https://academy.bpmonline.com/documents/technic-sdk/7-13/using-filtrati…



Best regards,

Alex

I saw that documentation yesterday, but I thought it was from the perspective of the detail instead of the page.  It is working now.  My solution is pasted below for anyone that needs it.  Thanks for the help!

methods: {
	productLocationFilter: function(response){
		var filterGroup = new Terrasoft.createFilterGroup();
		filterGroup.logicalOperation = Terrasoft.LogicalOperatorType.AND;
		var OppId = this.get("Opportunity").value;
		var acServiceLocationId = this.get("AtsServiceLocation").value;
		//window.alert("OppId" + OppId + ", " + "acServiceLocationId" + acServiceLocationId);
		filterGroup.add("OpportunityFilter", 
			Terrasoft.createColumnFilterWithParameter(
				Terrasoft.ComparisonType.EQUAL, "Opportunity", OppId));
		filterGroup.add("LocationFilter", 
			Terrasoft.createColumnFilterWithParameter(
				Terrasoft.ComparisonType.EQUAL, "AtsLocation.AtsAccAddress", acServiceLocationId));
		return filterGroup;
	}
}

 

Show all comments

Hi,

 

I'm trying to forward fields from my Lead to a new Order record created from a case with the element Open Edit Page.

In the list of values from fields that I can extract, I can not find the field Products, which I want to use to move this content to populate my new Order.

 

Any advice ?

Thank you

Like 0

Like

1 comments

Dear Louis,

To extract and add products from Leaf to Order use "Product in Lead" for reading the list of products added and "product in order" for adding products to the order. To specify from what Lead and to which Order products must be imported you may use Lead/Order Id.

Best regards,

Angela

Show all comments

When trying to call a web service from the BPM'Online platform, the process throws the following error: 

we assume that the error is due to the immense size of the JSON that we try to read from the external web service, so that the response would exceed the processing capacity limits of the webservice module of the bpm'online tool.

Our consulate is, if there is a way to increase the data processing limit of the bpm'online web service module in terms of reading the JSON delivered by the external web service.

We estimate that approximately 6 GB of RAM is needed to process the desired volume of data.

Like 0

Like

2 comments

It doesn't seem to be a memory issue. Bpm'online provides up to around 8 GB RAM in critical moments and 4 GB by default. Anyway, If the application consumes more than around 8 GB RAM, IIS restarts it automatically. If you need more resources, please contact your account manager and the limits will be increased. 

It seems like the issue is related to a wrong JSON format. However, since the JSON is huge you'll not be able to debug it. In this case I recommend to create your own web service according to the article by the link below. 

https://academy.bpmonline.com/documents/technic-sdk/7-13/how-create-cus…

This way in case of the exception message you'll be able to create your own logging or debug the service on a local copy of the application. 

Please be aware of the fact that during the integration process that consumes almost all available RAM users might face performance issues. 

Thank you very much for the reply; it was indeed an error of the JSON that was being called, since it contained Null fields that did not correspond.

Show all comments