Changes for page Calling a SOAP Web service
Last modified by Erik Bakker on 2024/08/26 12:56
From version 30.1
edited by Erik Bakker
on 2022/06/10 13:22
on 2022/06/10 13:22
Change comment:
There is no comment for this version
To version 40.1
edited by Erik Bakker
on 2024/08/26 12:56
on 2024/08/26 12:56
Change comment:
There is no comment for this version
Summary
-
Page properties (3 modified, 0 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 - Processing aFileperLine1 +Calling a SOAP Web service - Default language
-
... ... @@ -1,0 +1,1 @@ 1 +en - Content
-
... ... @@ -1,104 +1,108 @@ 1 -{{container}}{{container layoutStyle="columns"}}((( 2 - Insomecases,youwanttotreateachuniquepartofyourinputfileas itsmessageinsteadofprocessing thecompletefile astsmessage. In this microlearning, we will learn howyoucanprocessa(large)fileon a per-linebasis.1 +{{container}}{{container layoutStyle="columns"}}((( 2 +When talking to external parties via a SOAP web service you need to define in eMagiz that you want to call a SOAP web service so eMagiz will form a correct SOAP message. On top of that configuration there is a support object in eMagiz that will help you with the analysis of your problems when calling the SOAP web service. In this microlearning, we will learn how to call a SOAP web service from eMagiz. 3 3 4 -Should you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]].4 +Should you have any questions, please contact academy@emagiz.com. 5 5 6 -* Last update: May 31th, 2021 7 -* Required reading time: 7 minutes 8 - 9 9 == 1. Prerequisites == 10 - 11 11 * Basic knowledge of the eMagiz platform 12 12 13 13 == 2. Key concepts == 10 +This microlearning centers around calling a SOAP Webservice. 14 14 15 - Thismicrolearning centersaroundlearninghowto processanincoming fileperline.12 +With SOAP, we mean: A messaging protocol specification for exchanging structured information in the implementation of web services in computer networks. 16 16 17 -By processing per line, we mean: Splitting up the input into discernable pieces that each will become a unique message 14 +* To call a REST Webservice you need either: 15 + ** A Web Service Outbound Gateway 16 +* Critical information when configuring this component: 17 + ** URL 18 + ** Retry Advice 19 + ** Error Handling 20 + ** Authentication 21 + 22 +== 3. Calling a SOAP Webservice == 18 18 19 -* Easy way of reading a file line by line and sending it to eMagiz (Low on memory) 20 -* Ability to process each line based on distinctive logic that is relevant on line level 21 -* Can be used for flat file as well as XML input files 24 +Calling a SOAP Webservice within eMagiz can be done with the help of a Web Service Outbound Gateway. To correctly configure this component you need to consider the following elements: 22 22 23 -== 3. Processing a File per Line == 26 +* URL 27 +* Retry Advice 28 +* Error Handling 29 +* Authentication 24 24 25 - In some cases,you want totreateachuniquepart of yourinputfileas its messageinsteadof processing thecompletefileas its message. In this microlearning, we will learnhowyou can processa (large) file on a per-linebasis.31 +We will discuss the first three items in this list in this microlearning. In the microlearnings that will follow this microlearning, we will delve deeper into various authentication possibilities. 26 26 27 - To makethis work ineMagizyou needto navigateto the Create phase of eMagiz andopentheentry flow in which you want to retrieve thefile to a certain location.Withinthe contextofthisflow, weneedtoadd functionality that will ensurethatachline is read andprocessed separatelyandwillbecomeits uniquemessage. To do so firstenter"StartEditing" modeon flowlevel.After youhavedoneso pleaseadd a fileitemreader message sourceto the flow.Wewilluse this componentto read and process ourinput fileona per-line basis.33 +Before we delve into the configuration of the component let us first move to Create and open an exit flow in which we want to call the SOAP Webservice. When you open the exit flow it will look similar to this: 28 28 29 - The first step would be to definethe directory from which weadourmessages. Asalwaysreferencetothedirectoryth thehelpofaproperty.35 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--exit-flow-starting-point.png]] 30 30 31 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-processing-a-file-per-line--file-item-reader-directory.png]]37 +Now that we have opened the flow and are in "Start Editing" mode we need to add the web service outbound gateway to start with. 32 32 33 - Secondly, justas whenreadingthefileasholeensurehatou useafilter toretrieveonly thecorrect files fromthedirectory.39 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--web-service-outbound-component.png]] 34 34 35 -=== 3.1 Itemreader Type===41 +=== 3.1 URL === 36 36 37 -Now itistimeto selectour ItemreaderType. Asthehelptextof the eMagizcomponentsuggestthereare two choiceswiththiscomponent. The first(andmost frequentlyused) optionis the Flatfileitem reader. Withthisoption,you can read each linewithin theflat fileinputfileandoutputisata separate message.ThesecondoptionisalledtheStax eventitemreader.With thisoption, youcanreadyourinputXMLandoutputmessageson a per-recordbasis.43 +Now that we have added the correct component to the canvas it has become time to configure the component correctly. The first thing to configure when calling a SOAP Webservice is determining and registering the endpoint (URL) eMagiz should call to deliver the message too. As always in scenarios where an information element can change between environments, you should use a property reference and determine the correct value on a per-environment basis. 38 38 39 -[[image:Main.Images.Microlearning.WebHome@novice- file-based-connectivity-processing-a-file-per-line--item-reader-type-options.png]]45 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--web-service-outbound-component-url.png]] 40 40 41 - Basedonyour choicehe exact configurationwilldiffer.47 +=== 3.2 Retry Advice === 42 42 43 - ====3.1.1StaxEventItem Reader====49 +The second setting we need to configure is the retry advice. With retry advice, you can guard your solution against temporary connection losses between eMagiz and the external party. As this can happen from time to time the best practice is to configure such a Retry Advice on every Web Service Outbound component. To add the Retry Advice move to the Advanced tab and move down to the Request handler advice chain segment. Within this segment, you will see a button called Retry Advice. 44 44 45 - For the Staxeventitemreader, you need to definethe nameof the elementon which you want to split the XML and definewhetheryou wanto throwan errorincase nosuchelement exists in thenput file(By (de)selecting theoptionStrict). Thedefaultsetting of eMagiz is advisableforthis option.51 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--web-service-outbound-component-retry-advice-button.png]] 46 46 47 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-processing-a-file-per-line--stax-event-item-reader-config.png]]53 +When you click on the Retry Advice button you will be prompted with a pop-up. In here you need to configure the exact settings 48 48 49 - ==== 3.1.2 FlatFileItemReader ====55 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--web-service-outbound-component-retry-advice-pop-up-empty.png]] 50 50 51 -For the Flat File item reader, there are some more choices and configurations to be made. There are three options you can choose from: 52 -- Pass through line mapper 53 -- Default line mapper 54 -- Pattern matching composite line mapper 57 +The best practice for this configuration is as follows for asynchronous solutions: 58 +* Select the option called Simple Retry Policy 59 +* Set the max attempts at 6 60 +* Select the Fixed back off policy 61 +* Set the backoff period at 5000 (ms) 55 55 56 - Eachof theseoptionshas some advantagesanddisadvantages.Adhering to thebest practicesofeMagiz (i.e. no transformationin the entry) the bestoption wouldbe touse the pass-throughline mapper.As thename suggests thisoptiondoes nothing exceptgive astringbacktothe flow on aperlinebasis.However,choosingthisoptionmeansthat theactual transformationfrom that string to XML needsto happen later in the process(most likely inthe onramp) with the help ofa flat-file to XML transformer (more onthat componentin a later course).63 +When you have done so the configuration should look as follows. The only thing left is to press Save to save your Retry Advice configuration 57 57 58 - The other two options transformtheput linentoXML output. So you winnestep inthe process. However, nostandardeMagizerror handlingis advisable whenyou start transforming datawithin thentry. Soincase, something goeswrong to analyzethe error will becomemore difficult. Furthermore, anotherpotentialdisadvantageis that whenone linefails theprocessing of the rest of the file also halts.65 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--web-service-outbound-component-retry-advice-pop-up-filled-in.png]] 59 59 60 - Fortheremainderf this microlearning, we will assume that the optionpass throughline mapper is chosen.67 +=== 3.3 Error Handling === 61 61 62 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-processing-a-file-per-line--flat-file-item-reader-passthrough.png]]69 +When calling a SOAP Web service with the configuration we have defined up till here you could suffer from cryptic error response you get back when the SOAP web service call fails. To improve the error handling to make your life easier when analyzing the problem you need to add a support object to the canvas and link it to the web service outbound gateway. This support object is named "Detailed SOAP Fault Message Resolver". 63 63 64 - As youcansee ontheBasiclevelwearedone.However,itisalwaysgoodtocheckout thesettingsonthe Advanced tab,especially inthiscase,tosee ifthereare additional configuration options that could benefitus. The setting ofmost interest, in thiscase,is theLinestoSkip setting (default setting is 0).With this setting, you can define whetheror not youwanttoprocessthe headerline(s)that exists within yourinput file. The remainderofthesettingsis (in most cases) goodthewayeMagiz has setthemup.71 +To link the support object to your web service outbound gateway you open the web service outbound gateway, navigate to the Advanced tab, and select the Fault message resolver. Afterward press Save to save the link between the components. 65 65 66 -[[image:Main.Images.Microlearning.WebHome@novice- file-based-connectivity-processing-a-file-per-line--flat-file-item-reader-passthrough-advanced.png]]73 +[[image:Main.Images.Microlearning.WebHome@novice-soap-webservice-connectivity-calling-a-soap-webservice--web-service-outbound-component-fault-message-resolver.png]] 67 67 68 - ===3.2Poller===75 +Now that we have configured the HTTP Outbound component to our liking we can press Save on the component level to store our changes. As a result the flow will look as follows: 69 69 70 - Now that wehaveelectedand configured theitemdertypeit becomes timetofill in the lastpart of thefiguration,the poller. For pollingeMagizoffersthreeoptions:77 +[[image:Main.Images.Microlearning.WebHome@microlearning/novice-soap-webservice-connectivity-calling-a-soap-webservice--flow-result.png]] 71 71 72 -- Fixed Delay Trigger 73 -- Fixed Rate Trigger 74 -- Cron Trigger 79 +== 4. Key takeaways == 75 75 76 -Of these options, the cron trigger is used most frequently in eMagiz. The reason being is that you can define this option via a property that you can alter without having to alter the flow version in Create. 81 +* eMagiz will create a valid SOAP message when using this component 82 +* eMagiz provides a support object for better error handling of SOAP faults 83 +* There are four key configuration elements: 84 + ** URL 85 + ** Retry Advice 86 + ** Error Handling 87 + ** Authentication 77 77 78 - [[image:Main.Images.Microlearning.WebHome@novice-file-based-connectivity-processing-a-file-per-line--poller-config.png]]89 +== 5. Suggested Additional Readings == 79 79 80 -After finishing all these configuration steps we can press Save to save our work and ensure that we can process the input file on a per-line basis. 91 +* [[Crash Course (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]] 92 +** [[Crash Course API Gateway (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]] 93 +*** [[Setting up Exit gate (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-setting-up-exit-gate||target="blank"]] 94 +* [[Novice (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Novice.WebHome||target="blank"]] 95 +** [[SOAP Web service Connectivity (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.WebHome||target="blank"]] 96 +*** [[Configure your SOAP web service (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.novice-soap-webservice-connectivity-configure-your-soap-webservice-gen3.WebHome||target="blank"]] 97 +*** [[Securing your SOAP Webservice (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.novice-soap-webservice-connectivity-securing-your-soap-webservice||target="blank"]] 98 +*** [[Validate Incoming Messages (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.novice-soap-webservice-connectivity-validate-incoming-messages-gen3.WebHome||target="blank"]] 99 +*** [[Endpoint Check (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.novice-soap-webservice-connectivity-endpoint-check-gen3.WebHome||target="blank"]] 100 +*** [[SOAP Headers (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.novice-soap-webservice-connectivity-soap-headers||target="blank"]] 101 +*** [[Authorization - Calling a SOAP Webservice (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Novice.SOAP Web service Connectivity.novice-soap-webservice-connectivity-authorization-calling-a-soap-webservice||target="blank"]] 102 +* [[Intermediate (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.WebHome||target="blank"]] 103 +** [[SOAP Web service Connectivity (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Intermediate Level.SOAP Web service Connectivity.WebHome||target="blank"]] 104 +* [[Expert (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Expert Level.WebHome||target="blank"]] 105 +** [[Webservice Security (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Expert Level.Webservice Security.WebHome||target="blank"]] 106 +* [[Calling a SOAP Web service (Search Result)>>url:https://docs.emagiz.com/bin/view/Main/Search?sort=score&sortOrder=desc&highlight=true&facet=true&r=1&f_space_facet=0%2FMain.&f_type=DOCUMENT&f_locale=en&f_locale=&f_locale=en&text=%22calling+a+SOAP+Web+service%22||target="blank"]] 81 81 82 -== 4. Assignment == 83 - 84 -Configure an entry in which you define the component and configuration needed to process a file on a per-line basis. 85 -This assignment can be completed with the help of the (Academy) project that you have created/used in the previous assignment. 86 - 87 -== 5. Key takeaways == 88 - 89 -* Easy way of reading a file line by line and sending it to eMagiz (Low on memory) 90 -* Ability to process each line based on distinctive logic that is relevant on line level 91 -* Can be used for flat file as well as XML input files 92 -* Try to avoid complex transformations within the entry 93 - 94 -== 6. Suggested Additional Readings == 95 - 96 -There are no suggested additional readings on this topic 97 - 98 -== 7. Silent demonstration video == 99 - 100 -This video demonstrates how you could have handled the assignment and gives you some context on what you have just learned. 101 - 102 -{{video attachment="novice-file-based-connectivity-processing-a-file-per-line.mp4" reference="Main.Videos.Microlearning.WebHome"/}} 103 - 104 104 )))((({{toc/}}))){{/container}}{{/container}}