Question

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 comments
Log in or register to comment
Question

I have created one section with the name of Courses and added one lookup for selecting the contact. For this lookup, I need to implement a multi-select lookup. Can anyone please guide me?

Like

5 comments

Hello Nagamani,

This question was already discussed in community post: https://community.bpmonline.com/questions/multiselect-lookup so you can simply use the solution from there.

Also there is a base realisation of multi-select in "Customer" field of an "Opportunity" page http://prntscr.com/oys5pc so you can simply review the logic that is used for that field and simply apply it to your custom lookup.

Best regards,

Oscar

Thank you Oscar Dylan. 
But, Where I can find that lookup.config?

Nagamani Dangeti,

You need to develop one using Academy article here 

https://academy.bpmonline.com/documents/technic-sdk/7-11/adding-multiple-records-detail?_ga=2.177294629.1423727864.1567079882-538770770.1567079882 and LookupMultiAddMixin mixin.

Best regards,

Oscar

Actually, What I am asking is Can we implement a multi-select lookup for a field in the section?

I have one section. In that, I have created one lookup field. For that lookup field, I need to implement multi-select lookup.

 

Log in or register to comment
Question

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

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

Log in or register to comment
Question

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

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"#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.

 

Log in or register to comment
Question

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

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

Log in or register to comment
Question

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

5 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

Log in or register to comment
Question

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

2 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 !

Log in or register to comment
Question

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

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

Log in or register to comment
Question

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

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.

Log in or register to comment
Question

Hi,

In my object "Case" i created a new value ofthe type integer that was suposed to beused to calculate de average from all records, but by default the value is 0 wich will afect the result, is there any way to make that value "NULL"?

Thanks,

Best Regards,

Nuno Gonçalves

Like

3 comments

Dear Nuno,

If you need to store NULL value and calculations result in a field - use "String" data type field and use convertions from integer to string and vise versa. As a result you will be able to store integers and NULL in such a field. Here is an article regarding convertion from String to Integer (from our Community) and from Integer to String (from Stack Overflow).

Best regards,

Oscar

Oscar Dylan,

This is not an acceptable response because the String field allows non-numeric answers that generate errors when parsed to numbers.  The only reliable work around is to add a boolean field that the user can check to indicate that a zero is really the answer, which is ridiculous.

This is the community article I wrote on parsing a String to an Integer:

https://community.bpmonline.com/articles/how-convert-string-integer

Janine White,

There is no such a data type accept of string data type that allows storing NULL (not empty value but NULL) and integer values in it. Also I was referring to your community post when answering this question (you can simply check it if you click on "Sting to Integer" text in my previous reply).

Log in or register to comment