SOAP API Structures and Timers
Question
Application Type
Mobile
Service Studio Version
11.50.12 (Build 47993)
Platform Version
11.13.0 (Build 31107)

What I have is an Insurance Claims Portal that is a third-party vendor software and we are building an interactive app to interact with the claims portal's data for the field adjusters.  I have never consumed SOAP API before or interacted with data in this regard.  We have researched data patterns and have a structure in mind on how we are going to go forward with data management.  

The API has a very good detailed structures so though we are dealing with a lot of information, most of which can easily be determined as necessary, not-necessary, real-time updated or just queue for general maintenance synchronization type things.    Before breaking down into a better management of data, being new to Outsystems or development in general for that matter, I wanted first just to see if I could use a server side action to fetch the data from the API, then move this data to an entity on a timer.  My plan was to do this in the "service" module of the app where I have broken down the database management portion of the mobile app. 

1) Consume SOAP API and then under "Data > Structures":  I copied the structure in question and pasted it under Entities:



2) This gave me an Entity > Attribute system comparable to the Structures tree:

3) Under Server Actions I created a new action to fetch the claim data via the API, transfer it to an input structure with mapped entity types to the list under the API results parameter.

Long story short, I setup the timer and put it on a schedule just to see if I could encapsulate the bulk of the data.  The timer shows it has ran twice but the results I am getting under the entity is as followed:  
 I am able to consume the API and show the data directly on the screen without moving it to an entity but once I move it to the entity first, then show the entity I can't seem to fetch and place the API data into the entity....

Any advices would be greatly appreciated.  I'm sure I have used half the jargon incorrectly and apologize for having to request assistance on my work.  I have a feeling that it is something to do with needing to use that "FOR EACH" type button under the Server Action I created....?

Hi Cody,

As you already mentioned yourself, you will need to iterate over the output list obtained from the API. So:

1. Call the GetClaimSummaries action
2. Iterate over the GetClaimSummariesResult output list using a FOR EACH loop and for each record:
3a. Assign the values from the ClaimExtract record to a local variable of the ClaimExtract3 entity type.
  3b. Store the local variable in your database using the CreateClaimExtract3 server action.

Kind regards,
Jeroen

Thank you so much for the direction! I'm very thankful...  Working on that now.

Can I ask you hopefully another quick couple of questions?

1) For some reason when creating the record attributes I only got the "CreateClaimExtract3" and not a "Create and/or Update..."?  Is that because I used the "service" module and if I would have used the home module I would have gotten both?


2) The below is where I am at... testing it now...


Cycle...

For Cycle I just referenced the first parameter/structure in the long list as starting index and the last one as the maximum.


   GetClaimSummaries....

Again, I apologize for taking your time on this (will send you a DM non-related FYI).

Does this look correct?

Hi Cody,

Looking at your screenshot, it seems like you're trying to map the entire results list to the entity record. Instead try mapping only the list item that's currently being iterated over, by changing the field highlighted below to something like GetClaimSummaries2.GetClaimSummariesResults.list.current

Oh man... I was shaking I was SO excited as I hit the edit entity to see if it added the records.  hahahah....

The timer is running successfully but just still getting a single line entry of an inaccurate API response...

When I create a list/table and display the API results directly it works though....  

1) When doing that it was in the Home module (not service module of the app) and without a timer though.

FYI- Sent you a private message.

I couldn't get it to work so deleted everything back to when I was able to call the API directly to the screen.  Got that to work again via a list and now trying to go back to seeing what I'm doing wrong with the entity aspect.... If you have any examples of API data moving to an entity, that would definitely help. Once I can get the API data to an entity, I can control the most of the rest of it from there it seems.

Didn't have an ID set - I think I may have got it....

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.