Cli!" and the %older will be !reated
:itho$t the s!ript %older a new s!ript will not be able to be added $sing the s!ript element.
oing ba!" the integration sele!t the
+ight !li!" oer the
I% #o$ did not !reate the %older in the preio$s step #o$ will be $nable to !reate the s!ript /le and an error will be displa#ed at the top o% the dialog.
Howeer we did !reate the %older so a s!ript !an be now !reated. The s!ript will be named
;elete the !ontents o%
i% JeNMn$llK L de% bod# de% bod# M message.geto message.getod#JK d#JK message.setod#Je.get+ message.setod #Je.get+esponseod#JK esponseod#JKK K ((Headers message.setHeaderJ5STAT*SC;65 e.getStat$sCodeJKK message.setHeaderJ5STAT*ST6?T5 e.getStat$sTetJKK O ret$rn message O
This s!ript etra!ts the the
To the message To message the %ollowing %ollowing headers are added added STA STAT*SC;6 and STA STAT*ST6?T both o% whi!h are $se%$l when !reating o$r error message email when an error is thrown. A $se%$l tip is that i% the groo# pl$gins are installed in #o$r e!lipse enironment enironment then right !li!"ing oer the /le in the ProDe!t 6plorer and sele!ting <ther> %rom the <pen :ith> !ommand will displa# a list o% editors o% whi!h one will be the groo# editor.
Cli!" <> and the
Sae the /le and !lose the editor window. Sele!t the
This !ompletes !ompletes the set$p set$p %or parsing the stat$s !ode !ode and the error message message %rom %rom the e!eption. The message will now !ontain two new header /elds %or the HTTP Stat$s Code and the HTTP Stat$s message. Finall# we are going to send these to the email !hannel in the s$bpro!ess e!eption handler. oto the 6!eption s$bpro!ess !reated earlier and add a new sender !omponent and a !hannel %rom the <6nd 6ent> o% the e!eption S$b-pro!ess to the sender end point.
+ight !li!" oer the Channel and !hoose
Sele!t the email adapter and optionall# add a name and a des!ription %or the general !hannel settings.
Cli!" on the
Change ba!" to the <&odel Con/g$ration> and rename the sender !omponent to
Cli!" <> and sae the !hanges %or the integration Cli!" on the lined drawing board right !li!" and sele!t <6e!$te Che!"s> to ens$re the integration @ow is !orre!tl#. Again right !li!"ing on the drawing drawing board and sele!ting sele!ting <;eplo <;eplo# # Integration Content> will deplo# and ee!$te the integration @ow. I% #o$ hae b$ilt the pa!"age !orre!tl# then a message will be deliered to #o$r inbo showing the error !ode and the error message in the s$bDe!t as was !on/g$red in the email !hannel. The bod# will displa# the tet o% the error re!eied %rom the openweathermap web site.
This !on!l$des !on!l$des how to enable enable error error handling in an an integration integration so errors errors !an be dealt dealt with appropriatel# and integrated into the @ow o% the message pro!essing.
HCI - Pa#load ,ogging $sing roo# S!ripts - Part 1 Eac$ground ;ogging during a message processing is always handy be it for runBtime debugging during development or during during support when you want to understand what happened during the life cycle of a message%
HCI provides default logging options as described in this blog ' HCI First Steps Part 9 - Identi%#ing iss$es % "he tracing options described in this blog are temporary options as the trace is persisted only 6- for inutes% "ry to iew "race post 6- minutes of processing your message and you will get the below error message
"his is obviously not ideal% Are there better options that ensure that the logs are available for consumption post the 6minutes durationP "hose from a +I bac$ground would $now the advantage of using "race statements in their user define functions% "he trace statements enabled you to understand what happened during the processing of your message% Is there something similar in HCIP
4ou can insert logging statements in your roovy !cript and ava !cripts% "he documentation to this is described here##;e/ning S!ripts here "his blog covers a sample using roovy !cripts but it would wor$ similarly in the conte
roovy !cript
1.
i mp or tc om. s ap. g at e wa y . i p. c or e. c us t omde v . ut i l . Mes s age;
2.
i mp or t j a va. ut i l . Has hMap;
3.
defMessagepr ocessDat a( Messagem me essage){
4.
defbody=mes s age. ge t Body ( j a v a. l ang. St r i ng )asSt r i n g;
.
defmessageLog=messageLogFact or y . get MessageLog( message) ;
9.
i f ( messageLog! =nul l ) {
. 8.
me s s ag eL og . s e t St r i n gPr o pe r t y ( " L og gi n g# 1" ," Pr i n t i n gPa y l o adAsAt t a ch me me nt " )
me s s a ge L og . a d dAt t a c h me me nt As St r i n g( " Re s p on s e Pa y l o ad : " ,body , " t ex t / pl ai n" ) ;
.
}
17.
r et ur n me message;
11. }
"he above script has 8 critical components#
Code de% message,og M message,ogFa!tor#.get&essage,ogJmessageK message,og.setStringPropert#J5,ogging)15 5Printing Pa#load As Atta!hment5K
Usage
et a!!ess to the &essage Pro!essing ,og :rite a String Propert# to the &essage Pro!essing ,og In the message pro!essing ,og the propert# ,ogging)1 is written with the !ontent 5Printing Pa#load Pa#loa d as Atta!hment5 In this !ase we hae hard!oded the 5Printing Pa#load as Atta!hment5 String. 0o$ !an also set this to the &essage Header Propert# and Pa#load as #o$ reB$ire. U*pdate' V$l 2 2719 - Added statement as per re!ommendation %rom Ste%an oller in the !omments se!tionW This se!tionW This method setStringPro setStringPropert# pert# sho$ld be $sed onl# %or short Strings Jone or a %ew
Code
Usage wordsK. For longer str$!t$red do!$ments li"e pa#loads method addAtta!hmentAsString addAtta!hmentAsString sho$ld be $sed. See net row %or this method. :rite :ri te an atta!hment to the &essage Pro!essing ,og
message,og.addAtta!hmentAsStringJ5+esponseP a#load'5 bod# 5tet(plain5K
The inp$t message message pa#load is inserted inserted as an atta!hment into the &essage Pro!essing Pro!essing ,og.
"his is a simple !OA+ to !OA+ !cenario with the !cript to log the response of the !OA+ call to the essage +rocessing ;og as an attachment% "he !cript listed above is used in a Integration &low a&ter the
'e(uest)'eply step%"he e
"esting of the Integration &low with the roovy !cript Eclipse "rigger your Integration flow# and then proceed to the message processing log in *clipse. Eelow will be seen%
"he ;oggingQ6 contains the "e
"he Attachments contains a Hyper ;in$ with the name of the Attachment as mentioned in our source code% Clic$ing on this hyperlin$# will lead to the actual payload%
WebUI ;i$ewise# when monitoring your flow over the :eb>I# the same info is visible% In fact the :eb>I provides the essage +rocessing ;og and Attachments separately ma$ing it easier to navigate and view the specifics as reuired#
!euence of +rinting of ;ogs
6ng Swee 0eoh had pointed to a very important concept in terms of how the ;ogs are printed% "he documentation lin$ pointed previously has the below info#
ote that the propert properties ies proided b# the s!ript step are displa#ed in alphabeti!al order in the res$lting message pro!essing pro!essing log J&P,K. That means that the seB$en!e o% properties in the &P, does not ne!essaril# re@e!t re@e!t the seB$en!e applied in the s!ript.
:hat this basically means is if your roovy !cript has multiple print settring+roperty! these are not printed in the logs in the same order as they get e
&or e
1.
me s s ag eL og . s e t St r i n gPr o pe r t y ( " DEF" ," Pr i n t i n gPa y l o adAsAt t a ch me me nt 1 " )
2.
me s s ag eL og . s e t St r i n gPr o pe r t y ( " ABC" ," Pr i n t i n gPa y l o adAsAt t a ch me me nt 2 " )
"he message processing ;og will print the output in Alphabetical order instead of the seuence in which it is e
:hen implementing your roovy !cript to use print in the essage +rocessing ;og# it is recommended that you ensure that the !tring +roperties have the 3eyFs as ;ogQ6# ;ogQ7 and so on to that the +rinting happens in the same order as e
&inal Note
;i$e everywhere else# there are performance tradeoffFs between ;ogging multiple payloads and not logging the same and hence this should be used with reuired design considerations% It is recommended that the ,roovy Logging
described in this blog is used in combination with *-ternalied +arameters to enable K disable logging of +ayloads for an Integration &low% 4our 4our e
"he steps to e
roo# S!ripts - Part 2 - *se 6ternaliXed Parameters
HCI - Pa#load ,ogging $sing roo# S!ripts - Part 2 - *se 6ternaliXed Parameters Eac$ground As discussed in my previous blog# HCI - Pa#load ,ogging $sing roo# S!ripts logging of payloads should be used prudently% "ypically "ypically you would li$e the logging to be disabled and have options to enable this only on a need basis%
If you are from a +I bac$ground# you would be well aware of parameters li$e "RAC;;# ;OIN!4NC and Integrated Configuration ;ogging Options that enable you to turn on K off logging / staging when reuired% !o how can this be done in HCI using the roovy scripts we described in the previous blogsP
"o be able to define ;ogging 0ynamically we will be using a custom
Integration &low Changes :e will continue to use the sample Integration &low described in my previous blog with an additional Content
%odifer tep and some changes in the ,roovy script as described below%
tep
/escription
Conten The ew t Content &odi/er %odife step is $sed to
/elta Changes ame M logger J J &essage Propert# to be $sed in the roo# S!ript K T#pe T #pe M 6ternal 6ternal Parameter Parameter ;ata T#pe M Daa.lang.String
tep
/escription
/elta Changes =al$e M externalParamLogger J ame o% the 6ternal Parameter whose al$e wil eternall# K
r
read the 6ternal Parameter into a lo!al propert# propert#..
+ead &essage Properties +ead the al$e o% propert# logger as set in the preio$s !ontent modi/er step I% ,ogger is set to 1 then log the pa#load ,roovy else do not cript per%orm an# Change logging.
1.
i mp or tc om. s ap. g at e wa y . i p. c or e. c us t omde v . ut i l . Mes s age;
2.
i mp or t j av a. ut i l . Has hMap;
3.
defMessagepr ocessDat a( Messagem me essage){
4.
defbody=mes s age. ge t Bod y( j a va . l a ng. St r i ng)asSt r i ng;
.
defmessageLog=messageLogFact or y . get MessageLog( message) ;
9.
d efp r o per t y Ma Ma p=me ss ag e. g et Pr o pe r t i e s( )
.
/ / Readl oggerf r om t heMes s agePr oper t i es
8.
St r i ngl ogg er=pr op er t y Map. Ma g et ( " l ogger " ) ;
.
i f ( l ogger . equal s ( " 1" ) ) {
17.
i f ( messageLog! =nul l ) {
11.
me s s ag eL og . s e t St r i n gPr o pe r t y ( " L og gi n g# 1" ," Pr i n t i n gPa y l o adAsAt t a ch me me nt " )
12.
me s s a ge Lo g. a dd At t a c h me me nt As St r i n g( " Re s p on s e Pa y l o a d: " ,body , " t ex t / pl ai n" ) ;
13. 14.
} }
1. r et ur n me message; 19. }
!etting of
"est your flow with
"est your flow with
In the Confgurations +ane that opens# navigate to your pro*ect and double clic$ on the same% In my case the name of my pro*ect is B +r01+ayload$s$ttachment
o to *-ternalied +arameters tab and update the value of e-ternal+aramLogger as 2 and click on ave +arameters
Right Clic$ on your pro*ect in Confgurations 334 /eploy Integration Content. 5our Integration
#low is now updated to have the Logging *nabled6
ReBtrigger the Interface and you should see the logs with the attachment as the ;ogger is now set to alue 6%
&inal Note As seen in this blog#
Starting with Hana Clo$d IntegrationY eep eep this in mindN Posted b# . =an +ooiD in Pro!ess Integration JPIK Z SA &iddleware on &a# 29 271 11'12'3 A& inShare34
A !o$ple o% months ago I started to wor" with Hana Clo$d Integration. I %ollowed the SAP e-learning HAC17 JHana Clo$d IntegrationK attended a HCI deelopers da# and iewed some webinars. :hen tr#ing to learn all the possibilities possibilities o% HCI I en!o$ntered some [problemsE. :ith this /rst blog I hope I !an help #o$ get get a %resh %resh start with HCI. •
•
•
Che!" o$t the SAP [Starting [Starting with HCIE HCIE page. It !ontains a lot o% $se%$l in%ormation abo$t the te!hniB$e blogs webinars and other eents. 0o$ 0o$ !an enter a trial program program to see what HCI !an do. do. Che!" the details here hereNN ;ownload 6!lipse 6!lipse.. This program will help #o$ to deelop adapters and integration Flows. To aoid weird errors ma"e s$re #o$ download the 7epler ersion. 7epler ersion. This is the ersion SAP s$pports. 6!lipse is $sed %or more than HCI onl# there%or #o$ need to download some additional pl$g-ins. See this this page page %or more in%ormation abo$t installing pl$g-ins in 6!lipse.
•
So #o$ got #o$r JtrialK HCI a!!o$nt and #o$ got the 6!lipse with all the pl$g-ins whatEs netY 0o$ 0o$ need to set $p #o$r #o$r 6!lipse with #o$r #o$r HCI tenant.
Enter your credentials in Eclipse. You should either received an email containing the URL, or use the trial environment. •
•
0o$r 0o$r 6!lipse is is now lin"ed lin"ed to #o$r HCI JtrialK JtrialK a!!o$nt. 0o$ 0o$ !reated a simple simple iFlow and tr# to deplo# this' errorN e%ore #o$ !an start $sing #o$r HCI tenant #o$ need to !reate a "e#store. JIn the trial ersion this is alread# per%ormed b# SAPK In the P;F \Create a "e#store.pd%\ whi!h #o$ !an download here here the !reating o% a new "e#store is eplained.
ow that #o$r iFlow !an be deplo#ed on #o$r HCI tenant #o$ want !reate an iFlow. iFlow. In m# net blog I will show how to !all a web seri!e trans%orm some data and send it ia email. I% #o$ want to !all a web seri!e or S$!!essFa!tors %or eample #o$ need to add !erti/!ates to #o$r "e#store In the [Creating a VA=A VA=A e#store.pd%E thereEs this !hapter !alled [Importing Signed certifcation into keystore’. $t how do #o$ get #o$r S$!!essFa!tors !erti/!ateY
Use ire!o" or #hrome and $ro%se to your Successactors login page. #lick on the lock, and go to the onnection’ onnection’ ta$. #hoose ertifcate in!ormation’.
#hoose 'etails and go !or opy to fle’.
(ake the )ase*+encoded -./0 12.#ER3 and save it.
And there #o$ got #o$r S$!!essFa!tors !erti/!ate whi!h #o$ !an import in #o$r "e#store. This wor"s the same %or other !erti/!ates.
•
So now #o$ are able to !reate #o$r iFlow rea!h to di]erent appli!ations and deplo# it to #o$r tenant. $t the iFlow is not wor"ing and #o$ want to tra!e the header and the bod# o% #o$r message. For this #o$ hae to ma"e a reB$est to SAP and as" %or tra!ing rights. 0o$ 0o$ !reate a ti!"et ti!"et here here and p$t #o$r reB$est in !ategor# ,;-HCI. &a"e s$re #o$ proide all the needed in%ormation Jli"e tenant name and S-$serK. A%ter #o$ hae been granted the rights #o$ need to enable tra!ing in #o$r iFlow.
In the properties o! your ilo%, go to (race #onfgurations and choose the trace level you %ant.
In the message monitoring 1dou$le click on your tenant, in the node e"plorer, to get here3 select the ilo% you deployed a!ter setting the trace settings and choose !or &4ie% (race’. Your ilo% %ill no% $e decorated %ith the selected trace level.
I hope that a%ter reading this blog #o$ are able to set $p #o$r HCI tenant with #o$r 6!lipse. I% #o$ hae an# B$estions please do not hesitate to !onta!t me or leae a !omment below. below.
Starting with Hana Clo$d IntegrationY Create a simple integration @ow JiFlowKN Posted b# . =an +ooiD in Pro!ess Integration JPIK Z SA &iddleware on V$n 22 271 8'2'12 A& inShare13
In m# preio$s blog blog I I wrote abo$t the [problemsE I en!o$ntered when starting with HCI. I hope that #o$ !o$ld b#pass those problems and otherwise %o$nd the sol$tion %or itN In this blog I wo$ld li"e to show how to !reate a simple integration @ow iFlow. In this eample I will show #o$ how to get in%ormation o$t o% a S$!!essFa!tors S$!!essFa!tors instan!e how to send this to a p$bli!web p$bli!web seri!e seri!e and how to pro!ess the res$lts. I will show #o$ the !$rrent weather %or a !it# whi!h ^IP !ode we will !olle!t o$t o% S$!!essFa!tors and sent that ia emailN The %ollowing prereB$isite prereB$isite are needed needed and will not not be %$rther dis!$ssed dis!$ssed in this post' post' •
a HCI tenant
•
a "e#store with S$!!essFa!tors !erti/!ate
•
an arti%a!t with S$!!essFa!tors !redentials
•
a "e#store with an email !erti/!ate
•
an arti%a!t with email !redentials
Confguring the sender
(his is %hat %e are going to create. First we !reate a new integration proDe!t in 6!lipse and !on/g$re the sender. I named the sender S$!!essFa!tors and !hoose %or [asi! A$thenti!ationE in properties. The sender !hannel will be !on/g$red li"e this'
(hese are the connection settings !or the Successactors channel. channel. #redential 5ame 2 is the name o! the credentials you deployed earlier to your tenant. ow we are going to set the operation details. Cli!" on &odel perations and /ll o$t #o$r SF !redentials. !redentials. e!a$se we want the ^IP !ode o% a person we sele!t the entit# [*serE and go %or XipCode.
In the demo enironment we are $sing there are a lot o% $sers with a lot o% Xip !odes. :e want to $se onl# one so we are going to set a /lter. I "now the I; o% the $ser I want the Xip !ode %rom is *S+-4 so we !reate a /lter li"e'
That is almost it %or %or !on/g$ring the sender !hannel. :e :e onl# need to /ll in in the S!hed$ler tab. tab. For testing p$rposes I alwa#s !hoose [+$n n!eE.
Create the 8/L fle So now we hae set $p the sender %rom whi!h we will get o$r inp$t. et step is to !reate a :S;, /le %rom the web seri!e. There are seeral wa#s to do that here is what I did. Sear!h the :S;, page %or the seri!e #o$ want to $se Jin this eample'http'((ws%.!d#ne.!om(:eather:S(:eather.asmYwsdl eample' http'((ws%.!d#ne.!om(:eather:S(:eather.asmYwsdl K and sae the page. It will sae the page as 6eather .asm.ml. .asm.ml. 0o$ !an sele!t this /le and drag it to #o$r 6!lipse. &a"e s$re #o$ drop the /le in the
Confgure the mapping ow it is time to add some mapping to o$r iFlow. Create a new message mapping and add it to #o$r @ow. :hen we !on/g$red the sender !hannel the model operation was saed as a /le Jprobabl# something li"e *ser6ntit#B$er#S#n!7.sdK whi!h is also in #o$r reso$r!es.wsdl map. Choose this /le as the so$r!e element. As %or the o$tp$t element #o$ !an sele!t the wsdl /le we !reated earlier and sele!t the global element o% #o$r !hoosing. In this eample we go with etCit#:eather#^ip.
A%ter A%ter setting the so$r!e and target go to the ;e/nition tab and map the XipCode we got %rom S$!!essFa!tors to the ^IP the web seri!e reB$ires.
Calling the web service A%ter we managed to get the Xip !ode %orm S$!!essFa!tors and map it to the inp$t the web seri!e demands we !an !all the web seri!e. For that #o$ need to add a seri!e !all to #o$r @ow. @ow.
The +eB$est-+ep +eB$est-+epl# l# bo is is added to #o$r #o$r @ow and %rom %rom here o$t #o$ !an !an add a message @ow @ow to a +e!eier.
To To !on/g$re the !hannel !hannel do$ble !li!" !li!" the message @ow and !hoose SAP SAP as Adapter Adapter T#pe. T#pe.
n the tab [Adapter Spe!i/!E #o$ !an enter the details o% the SAP seri!e #o$ want to !all. The address is the same address %rom earlier in this blog where we downloaded the :S;,. The *+, to :S;, !an be %o$nd b# !li!"ing on [rowseE and sele!ting the :S;, in the reso$r!es.wsdl map.
In this eample we go with etCit#:eather#^ip.
Create the converter To To show #o$ how to $se the the !onerter we will will $se a ?&, to CS= CS= !onerter in o$r iFlow. iFlow. Sele!t the !onerter %rom #o$r pallet and drag it to #o$r @ow. +ight mo$se !li!" on the bo and go %or [Swit!h to ?&, to CS= !onerterE.
ow we need to point the !onerter to the in!oming @ow and tell it how to pro!ess the data. o to the properties properties tab o% the !onerter and de/ne the parameters.
end the outcome by mail I% eer#thing is set$p in the !orre!t wa# whi!h we will see in a moment the o$t!ome will be the weather in%ormation o% a !it#. :e want to send this in%ormation ia email. For that we need to !reate a new re!eier and go %or the &ail adapter.
*nder [eneralE #o$ !an !on/g$re #o$r mail settings. In the address /eld #o$ !an /ll in #o$r smtpserer and the Credential ame is the name o% the arti%a!t #o$ deplo#ed earlier. I% #o$ want to hae the data showed in the message bod# #o$ !an enter <Lin.bod#O> in the mail bod#.
I% #o$ want an atta!hment with the data #o$ !an set it $p b# adding the parameters %or an atta!hment.
'un it And now #o$r iFlow sho$ld loo" something li"e this'
;eplo# #o$r Integration Content and wat!h the &essage &onitoring o% #o$r tenant to see i% it deplo#ed !orre!t.
I% instead o% C&P,6T6; #o$ see FAI,6; there is something wrong J#o$ might had /g$red that o$t alread#K. This is a great moment to $se the Tra!e %eat$re Ji% #o$ donEt "now how to a!tiate #o$r tra!ing !he!" m# preio$s bloghere blog hereK. K.
0o$r 0o$r iFlow will will be de!orated de!orated with enelopes. enelopes. These enelopes enelopes !an be sele!ted and and the !ontent !an be seen in the [PropertiesE tab. This is a great wa# to see what !ontent is moed %rom one [boE to another and to see where it goes wrong.
ThatEs allN 0o$ 0o$ now !reated !reated a simple integration integration @ow $sing seeral adapters adapters mappings mappings and !onerters. I hope this blog answered more B$estions than raised. raised. I% not please do not hesitate to !onta!t me or leae a !omment below. ob an +ooiD
log log log log log
1' Starting with Hana Clo$d IntegrationY eep this in mindN 2' Starting with Hana Clo$d IntegrationY Create a simple integration @ow JiFlowKN 3' ;eep die in Hana Clo$d Integration. 4' Hana Clo$d Integration and S$!!essF S$!!essFa!tors a!tors Integration Center ' Hana Clo$d Integration in !omparison to ;ellEs oomi.
;eep die in Hana Clo$d Integration Posted b# . =an +ooiD in Pro!ess Integration JPIK Z SA &iddleware on V$l 21 271 11'13'29 A& inShare24
;eep die in Hana Clo$d Integration. ;onEt be s!ared b# the title o% the blog donEt go awa#' ItEs not #o$ itEs meN It is me who Doined the SAP Hana Clo$d Integration ;eep ;ie training in :alldor% and I want to share some o% the great things I learned there. ] !o$rse D$st li"e m# preio$s blogs J1 J 1 2K I will "eep it B$ite simple. I% #o$ want the %$ll deep diing deal D$st !he!" o$t Pi#$sh a"harEs pro/le pro/le and and "eep an e#e on his training sessions. This time we will !oer en!r#ption and data stores. :hen all goes well #o$r two iFlows will loo" li"e this'
iFlow 1' 6n!r#ption and writing to a data store.
iFlow 2' ;e!r#ption and getting %rom data store.
Preparing Preparing %or en!r#ption e%ore we start with b$ilding o$r iFlow we need to add an +SA "e# pair to o$r "e#store. I% #o$ do not "now how to !reate Jor adD$stK #o$r "e#store please read m# /rst /rst blog blog Jdire!t Jdire!t lin" lin" to the do!$ment [How to !reate a "e#store.pd%EK.
For !reating the +SA "e# pair I also $sed e#Store 6plorer JD$st li"e we $sed %or !reating the "e#storeK. yourkeystore.D"s in e#Store 6plorer JS6K #o$ !an right !li!" on an empt# spa!e and :hen #o$ open yourkeystore !hoose %or [enerate e# PairE.
In the net s!reen #o$ !an !hoose the e# SiXe. For this eample we leae eer#thing as it is.
n the net pop-$p s!reen we !hange nothing and go dire!tl# to the prett# address boo" net to ame.
There we /ll /ll o$t all the in%ormation in%ormation is needed.
Then we get prompted prompted %or an Alias Alias %or o$r "e# "e# pair'
Please name #o$ +SA "e# pair
ow sae #o$r "e#store and deplo# it to #o$r tenant.
Creating the /rst iFlow ow eer#thing is set $p %or the en!r#ption part we are going to b$ild o$r /rst iFlow. In this iFlow I !hoose S$!!essFa!tors as a Sender. ] !o$rse #o$ !an $se an# "ind o% data %rom an# "ind o% adapter %or this eer!ise. eer!ise. I will not dis!$ss setting $p the sender Jand the re!eierK. re!eierK. I% #o$ do not "now how to set $p a sender or re!eier please read m# preio$s blogs.
I begin with pla!ing a &$lti!ast on the integration proDe!t. 0o$ 0o$ !an /nd this $nder &essage +o$ting in #o$r pallet. e!a$se I want to show #o$ the di]erent o$t!omes with and witho$t en!r#ption en!r#ption I m$lti!ast m# in!oming message J%rom S$!!essFa!torsK two wa#s.
n one o% the bran!hes I add a Content 6n!r#ptor J$nder se!$rit# elementsK. The other bran!h sta#s empt#.
The properties properties o% the PCS6n!r#p PCS6n!r#ptor tor are displa#ed displa#ed below below.. 0o$ 0o$ !an !hange it to #o$r #o$r li"es b$t b$t %or the eer!ise I will onl# assign m# p$bli! "e# alias. *nder 6n!r#ption !hoose add and set in
ow we added the en!r#ption to o$r SFSF data in one bran!h and nothing in the other bran!h. e!a$se I want to $se the en!r#pted /le %or later b$t also show #o$ the di]erent o$t!omes I will add another m$lti!ast right a%ter the PCS6n!r#ptor blo!".
ow we hae a bran!h we will $se to mail the en!r#pted /le and a bran!h whi!h we !an store in o$r data store. n the end o% the data store bran!h p$t a ;ata Store peration blo!" blo!" whi!h !an be %o$nd $nder &essage Persisten!e. Persisten!e.
In the properties o% the :rite blo!" #o$ !an !hoose a name %or #o$r data store. Also #o$ !an !hange the isibilit#. Please !hange the isibilit# %rom Integration @ow to lobal be!a$se we are going to need in in iFlow2. The option [6n!r#pt Stored &essageE !an be !he!"ed on b$t this is not the en!r#ption we !on/g$red earlier. So i% #o$ !hoose to !he!" this o% #o$r stored message will still be en!r#pted with #o$ own en!r#ption. In this eer!ise I will leae it on.
I !onne!ted both bran!hes to an end eent and !onne!t those to the re!eier. re!eier. For both I !hose the &ail adapter. For the bran!h witho$t en!r#ption I set $p the s$bDe!t with something li"e' SSfle57(E5#RY8(E' and the s$bDe!t on the other bran!h will then be' SSfleE5#RY8(E' .
So now #o$r !omplete iFlow1 sho$ld loo" something li"e this'
:hen we sae and deplo# the iFlow #o$ sho$ld get three di]erent things. ne is an email with the en!r#pted /le the se!ond one is a mail with an $nen!r#pted /le and the third is an entr# in a data store. 0o$ !an !he!" the data store in #o$r tenant $nder ;ata Store =iewer.
The emails sho$ld li"e something something li"e li"e this b$t will be be di]erent based based on #o$r !hosen inp$t. inp$t.
5ot encrypted
Encrypted
Creating the se!ond iFlow
In the se!ond @ow we are not going to $se a Sender shape #o$ !an delete this. Instead o% a sender shape we start this @ow with a Timer Start J$nder eentsK. From the timer start we pla!e a ;ata Store perations and sele!t [Swit!h to et perationE.
:hen #o$ sele!t the et peration #o$ need to enter the ;ata Store ame and the 6ntr# I;. oth !an be %o$nd in the ;ata Store =iewer on #o$r tenant.
A%ter #o$ point the et operation to the right data store and the right entr# in that data store we !reate a m$lti!ast. This is to proe we reall# did de!r#pt the data and where no de!r#ption too" pla!e the /le is still en!r#pted.
n the [to be de!r#ptedE bran!h we add s$rprisingl# a !ontent de!r#ptor. This !an be %o$nd $nder Se!$rit# 6lements.
e!a$se we did not !hange the settings while we were en!r#pting we do not need to !hange an#thing now.
V$st li"e li"e in iFlow1 we will will !onne!t the two bran!hes bran!hes to an endpoint endpoint and !onne!t those ia a mail adapter to the re!eier. re!eier. :hen #o$ sae and deplo# this iFlow2 the res$lt sho$ld be something eB$al to what we saw in the /rst iFlow that means a de!r#pted message J%rom the ot de!r#pted bran!hK and an en!r#pted message J%rom the de!r#pted bran!hK.
I hope #o$ learned something %rom this blog i% not please let me "now. I% #o$ want more detailed in%ormation in%ormation please %eel %ree to !onta!t me and donEt %orget to !he!" o$t Pi#$sh a"harEs pro/le pro/le to to see when the net HCI ;eep ;ie training is near #o$N
log 1' Starting with Hana Clo$d IntegrationY eep this in mindN log 2' Starting with Hana Clo$d IntegrationY Create a simple integration @ow JiFlowKN log 3' ;eep die in Hana Clo$d Integration. log 4' Hana Clo$d Integration and S$!!essF S$!!essFa!tors a!tors Integration Center log ' Hana Clo$d Integration in !omparison to ;ellEs oomi.
Hana Clo$d Integration and S$!!essF S$!!essFa!tors a!tors Integration Center Hana Clo$d Integration and S$!!essFa!tors S$!!essFa!tors Integration Center e!a$se etmoes etmoes the !ompan# I wor" %or is !$rrentl# inoled inoled in a !o$ple o% S$!!essFa!tors S$!!essFa!tors implementation proDe!ts m# e#e w as !a$ght b# the latest release notes %or S$!!essFa!tors. S$!!essFa!tors. In release 178 there will be an Integration Center within S$!!essFa!tors. S$!!essFa!tors. I tho$ght it wo$ld be a good idea to see what "ind o% integration options are aailable in the S$!!essFa!tors S$!!essFa!tors Integration Center and o] !o$rse I want to share m# eperien!e with #o$. The des!ription in the release release notes is as %ollows' %ollows' Integration #enter ena$les 5onI( users to easily $uild, deploy and manage out$ound fle $ased integrations themselves using a !un and intuitive user inter!ace %ithin Successactors 9dmin UI.
I am er# !$rio$s what that %$n inter%a!e means letEs seeN
Setting $p SF IC First o% all #o$ need to a!tiate the S$!!essFa!tors S$!!essFa!tors Integration Center JSF ICK in #o$r proisioning proisioning whi!h is something #o$r S$!!essFa!tors S$!!essFa!tors admin !an do %or #o$ Ja lin" to the o_!ial SAP do!$mentation is at the end o% this blogK. There is no etra li!ense %ee %or the IC it !omes with the S$!!essFa!tors Fo$ndation mod$le. A%ter A%ter the Integration Center is a!tiated in proisioning #o$ !an sele!t it in #o$r admin tools'
The /rst thing #o$ see on the wel!ome wel!ome s!reen are are the tiles with the di]erent di]erent options.
` rowse Integration Catalog ` Create a ew Integration ` 6dit m# integrations ` Import an Integration From a File ` &onitor Integrations I am going to %o!$s on the [Create a ew IntegrationE tile b$t I will !oer the other tiles brie@#.
rowse Integration Catalog This tile brings #o$ to the oerall oerall Clo$d Integration !atalog !atalog.. In here #o$ will /nd prepa!"aged integrations %or S$!!essFa!tors S$!!essFa!tors b$t also %or other appli!ations. :hen I wrote this blog there were seen SF IC @ows aailable b$t IE m g$essing this n$mber will grow oer time.
Create a new Integration The /rst thing when !reating !reating a new integration is to !hoose %rom %rom whi!h entit# #o$ want to etra!t data. :hen sele!ting an entit# it will show a preiew o% the /elds in the entit#. entit#. IEm going %or the entit# \*serE and !hoose sele!t.
A%ter A%ter sele!ting the right entit# we !an see we hae to go thro$gh si steps to !omplete o$r integration. The s$bDe!ts o% the steps and the /elds in the /rst step seem reall# sel%eplanator#.
:hen #o$Ee /lled in the reB$ired /elds and !hoose net it ma# ta"e some time %or the s#stem to gather the in%ormation. :hen the !al!$lation is done the s!reen will gie #o$ a preiew o% the data. Here #o$ !an edit /elds re-arrange them remoe them and add a lot o% /lters and sorting options. 7n a side note: you can save the integration %hile confguring confguring it and I suggest you do. It seems that the standard Successactors Successactors logo;%henidle time can interrupt your creation $e!ore you fnished it.
&a#be this loo"s %amiliar to #o$ as we dis!$ssed this in m# se!ond blog' Starting with Hana Clo$d IntegrationY Create a simple integration @ow JiFlowKN V$st pla# aro$nd with these settings settings and when #o$Ere read# !hoose !hoose net to see a preiew preiew o% what #o$ !reated. I% #o$ li"e what what #o$ see in the preiew preiew !hoose net so we !an !an enter the SFTP settings.
The /elds in this step step are also !lear. !lear. 6nter #o$r SFTP address address enter #o$r !redentials !redentials and !hoose a /le name and pla!e. This is almost ea!tl# the same as the sFTP adapter option in HCI. The net step is to to s!hed$le. 0o$ 0o$ !an !hoose not to S!hed$le the integration integration so #o$ !an r$n it on!e.
The reiew and r$n step is is the /nal step o% the pro!ess. pro!ess. Here #o$ !an !he!" !he!" the !reated integration and r$n it.
*nder the Sae b$tton Jwhi!h I mentioned earlierK there are some more options. 0o$ 0o$ !an eport the Integration de/nition as well as the spe!i/!ations spe!i/!ations #o$ !an download the preiew. preiew. ne other thing that is worth mentioning is the A$dit Histor# ,og. Here #o$ !an iew #o$r preio$sl# saed saed ersions o% #o$r integration. I% #o$ mess $p and "now that ersion 4 o% the integration was wor"ing /ne D$st go on with that oneN
*dit my integrations
Here #o$ !an /nd preio$sl# !reated !reated integrations and edit them.
Import an Integration #rom a #ile
,etEs tr# to import an integration %rom a /le. First we need to go to the !atalog !atalog and and download a integration %or SF IC. I /ltered on s$pported plat%orm JSF ICK and went with the Telephone Telephone and ,o!ation template.
Sele!t the tile and go to the do!$ments tab'
Sele!t the do!$ment !hoose ;ownload and sae it on #o$r dis".
:hen #o$ saed the integration go to the Import an Integration From From a File tile and sele!t #o$r downloaded integration. Choose $pload and #o$ will be in the same s!reen as when we !reated o$r own integration. $t when #o$ sele!t
#o$ see that the download integration sele!ted a !o$ple o% /elds whi!h also !ontain the lo!ation and phone n$mbers. 0o$ 0o$ !an easil# add and modi%# /elds /elds or $pload another integration i% that s$ites s$ites #o$r needs.
%onitor Integrations :hen going into the monitor integrations we see a ni!e HCI-:6*I HCI-:6*I loo"ing monitoring. 0o$ !an see the Dobs that hae been triggered %rom the Integration Center Dobs that #o$ s!hed$led and Dobs that hae been triggered %rom ;ell oomi.
:hen #o$ !li!" on a pro!ess name %or eample the one that !as$ed an error #o$ will get detailed in%ormation o% the Dob. I% #o$ entered an in!orre!t sFTP adress #o$ will see the error in there.
For s!hed$led Dobs it is possible to add an email address to re!eie stat$s $pdates a%ter the Dob has /nished. In the S!hed$le S!hed$le tab when #o$ !hoose an o!!$rren!e o!!$rren!e other than [noneE [noneE #o$ get the option to enter an email address. This is onl# an in%ormation in%ormation mail the a!t$al data will be stored stored on #o$r sFTP serer. serer. The title o% the mail will be something li"e' li"e'
And that was all. I hope this blog helped #o$ along with the SF IC i% #o$Ee got an# more B$estions do not hesitate to !onta!t me' bobnetmoes.nl www.netmoes.nl
5ou 5ou can fnd the o9cial o9cial $+ User ,uide &or Integration Integration Center here here..
log 1' Starting with Hana Clo$d IntegrationY eep this in mindN log 2' Starting with Hana Clo$d IntegrationY Create a simple integration @ow JiFlowKN log 3' ;eep die in Hana Clo$d Integration. log 4' Hana Clo$d Integration and S$!!essF S$!!essFa!tors a!tors Integration Center log ' Hana Clo$d Integration in !omparison to ;ellEs oomi.
Hana Cloud Integration in comparison to 0ellUs Eoomi%
In my previous four (1#2#3#4) blogs I tal$ed about i&lows in Hana Cloud Integration% As we all $now HCI is not the only middleware solution that is out there and if you are wor$ing in the integration scene# names as itterEit# ule!oft# Ei?"al$ Ei?"al$ and Eoomi are probably not unfamiliar to you% "hat last one# Eoomi# is specifically for all the !uccess&actors mployee Central users and integration partners% >ntil a month ago# when purchasing an !A+ !&!& enterprise pac$age# the middleware software that came with that pac$age was Eoomi% Now it is also possible to go for a !A+ !&!& enterprise pac$age withG%%HANA C;O>0 IN"RA"ION% IN"RA"ION%
Eecause this option is relatively new# there are still a lot of !&!& customers who are wor$ing with 0ell Eoomi% "herefore I want to compare some options in 0ell Eoomi to Hana Cloud Integration% IUm going to ma$e a simple integration flow in HCI and Eoomi and show you my results% "he i&low will contain an inbound connector (!uccess&actors)# a simple mapping# an D; to C! converter and an outbound connection (email)% Eecause the HCI web >I is not fully developed yet (e%g% there is no possibility to start a new i&low from scratch) IUll be using clipse for the HCI part% &or Eoomi I will be using the web environment (https'((plat%orm.boomi.!om )
Inbound connector
<#I connector and connection
'etails !or the in$ound connector
'etails !or the connection
In HCI# you create an inbound connector and a connection to the start shape% On the connector itself you can ad*ust the authentication details% On the connection you see two sections VConnection detailsU and V+rocessing detailsU% "hese are uite selfBe
)oomi connector and operation
)oomi connector
)oomi operation
As you can see in the pictures# in Eoomi thereUs one place where you enter the aut hentication# the connection details# and the operation details (called process details in HCI)% A big difference between HCI and Eoomi is the way these connectors are saved% In HCI# you create a pro*ect# in which your i&low is stored% In the i&low youUll find the different connectors that have been used% In Eoomi# thereUs one big pro*ect where all your i&lows and connectors are saved% "hat means# for e
apping
"he mapping in Eoomi and HCI are uite similar% ItUs possible to drag a value from your import directly to your desired output# or you can change the data by using different $ind of functions% &or e
(he mapping icon in <#I
7vervie% o! a simple mapping in <#I
Some o! the !unctions that can $e used $et%een your input and output
8arameters !or a (rans!orm'ate !unction in <#I
In Eoomi the mapping loo$s li$e this'
(he mapping icon in )oomi
7vervie% o! a simple mapping in )oomi
9 !unction to modi!y the date date !ormat
8arameters !or 'ate(rans in )oomi
Combine andKor convert
Now we come to the part where Eoomi and HCI show some difference% :hen loo$ing at HCI# we see that the reuested data rows from !uccess&actors are treated as one document% :ithin HCI all records (data rows) will automatically be combined into one document% "his is not the case with Eoomi% very single row (record) is treated as one document# which can c an be sent out individually% Normally# Normally# youUd want to have one file (%csv) containing all the rows (records) so itUs necessary to combine the documents (each containing one data row) to one document% On the other hand# in HCI the data is processed as
(he converter icon in <#I
8arameters !or the -=L to #S4 converter
And in Eoomi# we do not convert but we must combine'
(he data process icon, !rom %here %e can com$ine
8arameters to com$ine documents
Another difference is naming the resulting document% In HCI the document is named in the connector which is being used (e%g% the mail adapter# which we will discuss in the ne
(he icon to set the properties
(he parameters to name the fle.
Outbound connector
"he outbound connector is set up in the same way as the inbound connector% In HCI you need to create a connector and a connection# and in Eoomi you need to create a connector and an operation%
(he mail connector icon and connection >o% in <#I
8arameters !or the #onnection 'etails and the =ail 9ttri$utes in <#I
(he )oomi out$ound connector icon
(he connections details !or email in )oomi
(he operation details in )oomi
:rapBup
:hen you deploy and run these simple i&lows in both systems you get the following result'
Result in <#I
Result in )oomi
As shown# Eoomi ta$es up to more than a minute t o run this flow% It has read JJ documents (read' rows of data) out of !uccess&actors# and has sent one %csv file out% HCI doesnUt display the amount of documents in or out# and only ta$es 6J seconds to complete% Off course this is *ust one simple test# but I thin$ the speed difference is remar$able% "here are two things that I would love to see in HCI in the near future% In Eoomi you have the possibility to @test= the i&low before actually deploying it to your atom% If your i&low reuest to much data it will only ta$e the first 6documents and run the i&low as if it is was deployed% In HCI you have to deploy the whole i&low to your tenant and
run it to see if the changes you have made were successful% "he second thing is the way Eoomi handles multiple accounts% I now have one email address to login and from there I can service all my customers% "his saves me a lot of time and IUm very curious in wat way HCI is going to develop in this matter% "he thing I li$e a lot in HCI is the trace functionality% 4our 4our i&low becomes decorated with envelopes where you can see the data that is going through% In Eoomi the trace function is much more standard and you cannot see directly what data is going through the different steps%
(race !unctionality in <#I
(race !unctionality in )oomi
As e
IUm very curious if you are wor$ing with HCI or Eoomi and what your e
log 1' Starting with Hana Clo$d IntegrationY eep this in mindN log 2' Starting with Hana Clo$d IntegrationY Create a simple integration @ow JiFlowKN log 3' ;eep die in Hana Clo$d Integration log 4' Hana Clo$d Integration and S$!!essFa!tors S$!!essFa!tors Integration Center log ' Hana Clo$d Integration in !omparison to ;ellEs oomi.