07-04-2020 05:58 AM
We are new customers of Snaplogic and Oracle Cloud HCM and are trying to use Snaplogic for integrations with Oracle Cloud HCM (OC). One of our first projects is to update a flexfield on OC with our custom ID number for each person listed in the a csv file that we will receive from another process. We are using the OC HCM Data Loader (HDL). Outside of Snaplogic we transform the info. from the csv to a “.dat” file in a format that HDL uses, and then zip the file as required by HDL. I have loaded and processed the file manually using HDL so that I know that the file and HDL are working properly. Now I want to use Snaplogic to automate a process to run nightly to update OC
What I want Snaplogic to do is:
Send the zip file to OC.
Initiate the process on OC to process the contents of the zip file.
Store/log the results of the transactions.
I plan on using the SOAP Execute snap for this unless I find a better method.
The first thing I need to know is how to use Snaplogic to send the zip file to OC. It looks like I need the file to be loaded into the envelope in BASE64 format as “Contents”. How do I use Snaplogic to get the file from the server into snaplogic, transform it to BASE64 format and get it into the envelope?
Thanks in advance,
Scott
07-04-2020 06:10 AM
You can use a File Reader snap to read the file contents. Depending on your setup, you may to create a Binary Account for the snap to use to access the file (i.e. if reading from a FTP server or Windows share).
Then you can use a Binary to Document snap with no decode to make the contents available.
Finally, you use a Mapper snap, use the Base64.encode($content) function to encode the file contents and create the final envelope before calling the SOAP Execute.
This may not be complete for your example, but hopefully it gives you a good start.
Hope this helps!
07-04-2020 07:07 AM
Thanks Kory! This is very helpful!
Do you mean that I should create the envelope outside of the SOAP Execute snap and then pass the entire envelope in as a parameter somehow, or should I somehow pass the base64 formated file into a variable in an envelope that I previously have built inside the SOAP Execute snap?
Any info. on how to pass the parameters into the envelope would be helpful.
Thanks!
Scott
07-06-2020 03:39 AM
@swright - You can pass variables into the SOAP Execute snap via the input view and reference them in the “Custom Envelope” window. See the documentation on the snap for an example.
07-07-2020 09:38 AM
As suggested I used a file reader, then a Binary to Document snap, then Mapper snap, but when I use the Base64.encode($content) in the mapper snap has an error saying that $content is undefined. I’m not sure where I went wrong…
Also, I have the Encode or Decode in the Binary to Document snap set to ‘NONE’ but I notice that it could be set to ENCODE_BASE64. Should I be encoding it here rather than using the function Base64.encode($content) in the Mapper Snap?
Thanks,
Scott