Hello,

 

I'm trying to create a rest service using the AFT Repository (2.0.2.4) and everything works as expected until I save the context when I get the error below. 

 

What I am missing?

 

Thanks,

Jose

 

Newtonsoft.Json.JsonSerializationException: Unable to find a constructor to use for type ATF.Repository.Providers.ResponseStatus. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute. Path 'responseStatus.ErrorCode', line 1, position 31.
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
  at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
  at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
  at Newtonsoft.Json.JsonSerializer.Deserialize(JsonReader reader, Type objectType)
  at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
  at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
  at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value)
  at ATF.Repository.Providers.RemoteDataProvider.BatchExecute(List`1 queries)
  at ATF.Repository.AppDataContext.Save()
  at C2C.CreatioDataIntegration.AppealDocumentManagement.Save() in C:\tfs\C2C_QLS\QLS\CreatioDataIntegration\CreatioDataIntegration\AppealDocumentManagement.cs:line 71
  at C2C.CreatioDataIntegration.AppealDocumentManagement.Add(AppealDocumentRequest request) in C:\tfs\C2C_QLS\QLS\CreatioDataIntegration\CreatioDataIntegration\AppealDocumentManagement.cs:line 65
  at Program.<>c.<<$>b__0_2>d.MoveNext() in C:\tfs\C2C_QLS\QLS\CreatioDataIntegration\CreatioDataIntegration\Program.cs:line 61
--- End of stack trace from previous location ---
  at Microsoft.AspNetCore.Http.RequestDelegateFactory.ExecuteTaskResult[T](Task`1 task, HttpContext httpContext)
  at Microsoft.AspNetCore.Http.RequestDelegateFactory.<>c__DisplayClass102_2.<b__2>d.MoveNext()
--- End of stack trace from previous location ---
  at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
  at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
  at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
  at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
  at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddlewareImpl.Invoke(HttpContext context)

 

File attachments
Like 0

Like

3 comments

Hello Jose,

 

As Kyryl proposed in https://github.com/Advance-Technologies-Foundation/clio/issues/318 please raise an issue in https://github.com/Advance-Technologies-Foundation/repository. The question will be solved there.

Oleg Drobina,

Thanks Oleg, I already posted the question here Issues · Advance-Technologies-Foundation/repository (github.com)

Show all comments

Hi community, 

I am having a problem with a user that when he configures a column in the Cases section he saves it and displays it correctly, but when he goes to another section and then returns to the previous one he does not see the column change applied. What could be the cause of the problem?

Thank you very much for any help/comments you can give me.

Best regards!

Like 0

Like

1 comments

Hello!

Perhaps the cache of the browser has an effect on column display.

Could you kindly verify the page in incognito mode?

Show all comments

Hi all.

I'm tying to manually save in silent mode an active record.

When we open a records from the section page, the record (the edit page) is opened in a combined view so if I have a (custom) button on the action bar (on the top, near the "Actions" button) and when clicking on it >> trigger a function.. the function is located in the "xxxSection" JS module.

 

The problem is that on the section's JS methods, there is no "this.save(config)" method (like we have on an edit page js module) .

 

So, how can we programmatically save the active record in the "section" module code?

* We need this because we want to force "save record" before doing the actual logic after clicking the button.

(Regular UI ... NOT freedom UI)

 

Thanks..

 

Like 0

Like

1 comments

Hello,

 

You can try using the this.executeCardMethod("save") method upon clicking your button (as it's developed for the "Qualify" button in leads (see the onLeadManagementSectionButtonClick method from the LeadManagementUtilities module)). This will automatically save a page record even if the button was declared in the section code.

Show all comments

Hello community,

 

I came across the following to return the user back to section list page after saving section record

save: function(config) {
	if (!config) config = {};
	config.isSilent = true;
	this.callParent([config]);
}

 

Unfortunately, this if isSilent =true, the detail records are not saved in New Mode

I would like to save both detail record and the section record and return the user back to list page.

 

Is there a way to programmatically call Close button after saving a record?

Like 0

Like

1 comments

Hi,

The first thing that comes to mind is to call a sandbox message in your detail save. In the main object schema, you need to subscribe to this message and call the save and close button methods.

Show all comments

Hello community, we would like to use the autonumbering feature described on the Academy website. However, we want the number to be assigned after a record is saved, not when the record is created. It is important that no number is "wasted" when a record entry is cancelled. Is there an easy way to do this?

Like 0

Like

4 comments

Hello Alexander, 

 

when implementing autonumbering on the back-end, you can choose any action you want in the replacing object. 

In your case, instead of the default "Before record added", you can set the process to be triggered by the "After record saved" event.

 

Best regards,

Max.

Hi Max,



thank you very much for your reply. We tried it, but it wasn't possible. Could it be that the "Invoice" module in the original "Invoice" object blocks the creation of individual event BPs?

Alexander Lovenjak,

 

The original object should not block the creation of the event BP's.

Have you tried using the "Before record updated" event?

 

When an object is saved it basically sends an Update query to the database so this event should work properly.

 

Best regards,

Max.

Hi Max, thank you for your help. It seems, that there is a bug within the invoice object. Creatio consulting tries to find it. The event handling changes doesn't help.

Best regards

Alex

Show all comments

Hello Creatio Community,

When a Detail is saved dhe DetailPage is automatically closed. Is it possible to save the Detail without closing the Page?

Like 0

Like

2 comments
Best reply

Hi Petrika,



Have you tried Silentsave method?

onSaveButtonClick: function() {
   if (this.get("IsProcessMode")) {
      this.save({ isSilent: true });
   } else {
      this.save();
   }
} 

Refer the articles here & here



Best regards,

Bhoobalan Palanivelu.

Hi Petrika,



Have you tried Silentsave method?

onSaveButtonClick: function() {
   if (this.get("IsProcessMode")) {
      this.save({ isSilent: true });
   } else {
      this.save();
   }
} 

Refer the articles here & here



Best regards,

Bhoobalan Palanivelu.

Bhoobalan Palanivelu,

Thanks very much !

Show all comments

Dear Comunity.

 

When a new activity-record is created (not update) I have to calculate some fields.

Normally I would do this on the server (business-process etc.).

But in this special case I need some information from the client (geo-coordinates).

I found the method "save" method in the "BaseEntityPage". It is possible to overwrite it.

But I have one problem, I could not find a way to find out if it is a new record or not.

I tried following methods/attibutes

  • this.isNewMode();
  • this.get("Operations");
  • this.isNew;

Everything brought the same result, whether I created a new data record or not: 'edit'



 

Like 0

Like

4 comments

You can try

if (!this.isAddMode() && !this.isCopyMode())

Vladimir Sokolov,

Hello. 

Thanks for the quick reply.

Unfortunately, both methods "isAddMode()" and "isCopyMode()" returns every time the same value:  false. sad

Regardless of whether I create a new data record or not.

 

Maybe "save" ist not the right method. 

But I could not finde a method like "onBeforeSave",  or something like that.

Christian Kern,

 

Hi,

 

save client-side method is the same "onBeforeSave" from the server-side logic. There is also onSaved method that is the same as "onRecordSaved" in the server logic. And the this.isAddMode() check that Vladimir mentioned works perfectly if using it both in the save and onSaved methods on the client-side.

 

You need to debug the code and find a way to make it work in the way you need the business task to be completed. Probably if you could share the code of your page and describe the task in details we could take a look at it together.

 

Best regards,

Oscar 

Hello.

 

I found the cause of my problem.

In our project we work with the ActivityMiniPage.

If you expand this AcitvityMiniPage to the normal page (ActivityPageV2)  the record is saved automatically. For this reason it is always a "change" for the system if I click on the "Save" button.

Show all comments