
ãServiceNow PDIãIntegration Hubã䜿ãä»ã·ã¹ãã 飿ºæ©èœéšåãå®è£ ããæé ãŸãšã
ServiceNowã®Workfow Data Fabric補åã¯ãæ§Automation Engineãšããä»ã·ã¹ãã 飿ºæ©èœçŸ€ãä»å¹Žãããªãã©ã³ãã£ã³ã°ããããã®ãšãªã£ãŠæäŸãããŠããŸãã
ãã®äžã«å«ãŸããIntegration Hubãšããæ©èœè£œåããããŸããå¹³ãã説æãããšãREST APIãªã©æ§ã
ãªæ¥ç¶æ¹åŒã䜿ã£ã飿ºæ©èœã
â åãã³ããŒè£œåãšããã«é£æºã§ããæ©èœéšåãã³ãã¬ãŒã
â¡å©çšè
ãèªåã§é£æºæ©èœãã«ã¹ã¿ã éçºã§ããéçºæ©èœçŸ€
ãšããåœ¢ã§æäŸãããŠããŸãã
ä»åã¯ãâ¡ã®èгç¹ãèªåã§ä»ã·ã¹ãã 飿ºæ©èœãã«ã¹ã¿ã ã§äœã£ãŠã¿ãããšã«ãã£ã¬ã³ãžããããšæããŸãã
ããã«ãä»åãRPA Hubã®æçš¿ãšåæ§ã«ãç¡åã§æè¡åŠç¿ã§ããç°å¢ãšããŠã®PDI(Personal Development Instance)ã§äœæãè¡ã£ãŠã¿ãŸããã
ãããŠãããïŒã€ã®ãã£ã¬ã³ãžã âããŒã³ãŒãâ ãšããèšå®ããŒã¹ã§é£æºæ©èœéšåãæ¬åœã«äœããã®ãããšããç¹ã«ããã£ã¬ã³ãžããŠã¿ãŸãã
ïŒïŒPDIã®æãåºããšãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«
ãŸãPDIã®æãåºããè¡ãéçºã§ããã€ã³ã¹ã¿ã³ã¹ç°å¢ãçšæããŸãã
PDIã®æãåºãã¯ãã¡ãããè¡ã£ãŠãã ããã
ç¶ããŠPDIãžã®ãã©ã°ã€ã³ã®ã€ã³ã¹ããŒã«ãè¡ããŸãã
PDIã®æãåºããå®äºããã®ã¡ã[My Instance]ã®äžããã[Activate Plugin]ãéžæããŸãã

ãªã¹ããããIntegrationHubãšèšèŒã®ããæ©èœãæ€çŽ¢ããŸãããã®äžã®ã以äžã®ãããããActivateããŸãã
ã»IntegrationHub Professional Package
ã»IntegrationHub Enterprise Package
ãã©ã°ã€ã³ã€ã³ã¹ããŒã«åŸã«ãå®äºã¡ãŒã«ãå±ããŸãã

ïŒïŒéçºãã飿ºæ©èœãšå©çšããAPIãµãŒãã¹
ä»åéçºããŠã¿ãããšæãæ©èœã¯ã以äžã§ãã
ã»éèæ©é¢ã³ãŒãã倿°å€ã§REST APIã§ã¯ã©ãŠãAPIãžéä¿¡ãããã®å¿çå€ã«éèæ©é¢åãªã©ãå«ãããŒã¿ãJSONã§åé ããåŸç¶ã¹ãããïŒFlowïŒã§å©çšã§ããããã«åºåå€ãçæ
ããéè¡æ¯èŸŒã¿ãªã©ã§æå®ã®éèæ©é¢ãæ€çŽ¢ãããããªæ©èœãããããšæããŸããä»åã¯éèã³ãŒããå€éšã®éèæ©é¢æ
å ±ãæäŸããŠãããç¡åã®åéèæ©é¢ã³ãŒãAPIãµãŒãã¹ããåé ãããŠããã圢ã§ç°¡åãªæ
å ±çœåŒæ©èœãäœã£ãŠã¿ãããšæããŸãã
ãããŠãå©çšãããŠããã ãç¡åã®APIãµãŒãã¹ã¯ãã¡ããå©çšããŸããã
ç°¡åã«APIã®ä»æ§ã ããæ¡å
ãããšã
ãã®ãããªæ§åŒã§APIã«GETãèŠæ±ããŸãã{bank_code} ç®æãæå®ã®éèæ©é¢ã³ãŒãïŒ4æ¡ïŒãå
¥ããéšåã§ãã
https://bank.teraren.com/banks/{bank_code}.jsonäŸïŒhttps://bank.teraren.com/banks/0001.json
èŠæ±ãå®è¡ãããšã以äžã®ãããªJSONãååŸã§ããŸãã
{
"code": "0001",
"name": "æ¥æ¬",
"kana": "ããŠãã§ãŠ",
"hira": "ãšãããã",
"normalize": {
"name": "æ¥æ¬éè¡",
"kana": "ããã³ã®ã³ã³ãŠ",
"roma": "nihonginkou",
"hira": "ã«ã»ããããã"
},
"url": "https://bank.teraren.com/banks/0001.json",
"branches_url": "https://bank.teraren.com/banks/0001/branches.json",
"created_at": "2021-10-15T12:13:26.433+09:00",
"updated_at": "2021-10-15T12:13:26.433+09:00"
}ãã®APIãµãŒãã¹ãå©çšããŠãJSONã«å«ãŸããéèæ©é¢æ å ±ãååŸããæ©èœãéçºããŠã¿ãããšæããŸãã
ã¡ãªã¿ã«ããã©ãŠã¶ã§URLã«éèæ©é¢ã³ãŒããå«ããŠå
¥åããŠéããšã
ã»https://bank.teraren.com/banks/0005.json

ãã®ãããªJSONãå¿çãããããšãåãããŸãã
ïŒïŒWorkFlow Studioã§ã®é£æºæ©èœ(Action)ã®äœæ
Workflow Studioãèµ·åããŸãã

ServiceNowã®Vancouver以éã§ããããŒã飿ºæ©èœïŒã¹ããŒã¯ãšåŒã³ãŸãïŒãDecision Tableãªã©ã®æ©èœãçµ±åéçºã§ããããã«ãªã£ãã®ããã®Workflow Studioã§ãã
ãã以åã¯æ§ã
ãªéçºããŒã«ç»é¢ãåå¥ã«éããŠéçºããŠããã®ã§ãããžãã¯ãèªååæ©èœãåäžç»é¢äžã§éçºã§ããããã«ãªãããšãŠã䟿å©ã«ãªããŸããã
[æ°èŠ] > [ã¢ã¯ã·ã§ã³]ãéžæããŸãã

ã¢ã¯ã·ã§ã³ã®èšå®ãè¡ããŸãã
ã»ã¢ã¯ã·ã§ã³åïŒGet Bank Name
ã»ã¢ããªã±ãŒã·ã§ã³åïŒä»»æã¢ããªãæå®
â»ãã®æ©èœãåŒã³åºãã«ã¹ã¿ã ã¢ããª"Bank Info Management"ãå©çšãã圢ãšããŸãããå©çšã¢ããªã®äœæã«ã€ããŠã¯ã次å以éã§æçš¿ãè¡ããŸãã

ïŒïŒã¢ã¯ã·ã§ã³ã®ã¹ãããå®çŸ©
ãããããã¢ã¯ã·ã§ã³å ã®ã¹ããããäœæããŠãããŸãããŸãå ã«äœæããã¹ãããå šäœã®å®æåœ¢ããæ¡å ããŸãã
å®æåœ¢ã®ã¢ã¯ã·ã§ã³ã¢ãŠãã©ã€ã³ç»é¢ã«ä»¥äžïŒã€ã®ã¹ããããå«ãŸããŸãã
â å
¥åïŒéèæ©é¢ã³ãŒããåŒãæž¡ãâå
¥å倿°âãå®çŸ©
â¡REST stepïŒAPIãµãŒãã¹ã«GETãèŠæ±ãå¿çãåé ããã¹ããã
â¢JSON Parser stepïŒåé ããJSONãããŒã¹ãèŠçŽ å€ãæœåº
â£åºåïŒå€éšåŠçïŒãããŒãªã©ïŒãžå€ãåŒãæž¡ã"åºåå€å€æ°"
â»ãšã©ãŒã®è©äŸ¡ã¹ãããã«ã€ããŠã¯æ¬å®è£
ã§ã¯å²æããŸãã

ãŸããâ å
¥å倿°ã«ã¯ä»¥äžã®ãããªå®çŸ©ãè¡ããå€éšããå
¥åå€ãåãä»ããåšãçšæããŠãããŸãã
ã»ã©ãã«ïŒBank Code
ã»ååïŒbank_code
ã»ã¿ã€ãïŒString

ãããããã¹ãããã®äœæã«å ¥ããŸããã¢ãŠãã©ã€ã³ã®[+]ïŒæ°ããã¹ãããã®è¿œå ïŒãã¿ã³ããã¹ãããã远å ããŠãããŸãã
çµ±åã«ããŽãªã«å«ãŸããæ©èœçŸ€ãä»ã·ã¹ãã ãžã®æ¥ç¶ããã³ããŒã¿é£æºãè¡ãæ©èœãäœæã§ããã¡ãã¥ãŒãšãªã£ãŠãŸãã
ãã®äžããã[REST]ãéžæããŸããÂ

ã¹ãããâ¡ã®REST stepã«ã¯ã以äžã®å®çŸ©ãè¡ããŸãã
ã»æ¥ç¶ïŒã€ã³ã©ã€ã³ã§æ¥ç¶ãå®çŸ©
â»åå¥ã«æ¥ç¶å
(URL)ãæå®ããå Žåã«ã¯ãã¡ããéžæããŸãã
ã»ããŒã¹URLïŒhttps://bank.teraren.com/
ã»æ¥ç¶ã¿ã€ã ã¢ãŠãïŒ30ç§

å°ãç»é¢ãã¹ã¯ããŒã«ã以äžã®å®çŸ©ãè¡ããŸãã
ã»ãã«ãïŒæå
ã»ãªãœãŒã¹ãã¹ïŒbanks/[å
¥å倿°ã®Bank Code].json
â»APIãµãŒãã¹ã®ä»æ§ã§ã/XXXX.jsonã®ããã«XXXXã«éèæ©é¢ã³ãŒãã®å€ãèŠæ±ãããããâã®ããã«ãã¹ã®éäžã«å
¥å倿°ãæ¿å
¥ããèšå®ããã©ãã°ïŒããããã§æå®ããŸãã
ã»HTTPã¡ãœããïŒGET

ç¶ããŠãâ¢ã¹ãããã®JSON Parserã¹ããããäœæããŸãã
ã¢ã¯ã·ã§ã³ã¢ãŠãã©ã€ã³äžã§ãREST Stepã®äžã«ãã[+]ãã¿ã³ããã¢ã¯ã·ã§ã³ã¹ãããã远å ããŸãã
æ€çŽ¢ããŒã«[JSON]ãšå ¥åãããªã¹ããããäžãã[JSON Parser]ã¡ãã¥ãŒãéžæããŸãã

JSON Parserã¹ããããå®çŸ©ããŸãã
ã»ãœãŒã¹ããŒã¿ïŒREST stepã§åé ããå¿çæ¬æããŒã¿ãã«ãæ¿å
¥
â»ç»é¢å³ã®REST stepãã[å¿çæ¬æ]ããŒã¿ãã«ããã©ãã°&ããããã§é
眮
ã»ãã€ããŒãïŒAPIãµãŒãã¹ããåé ããããã€ããŒãæ§åŒãæå®
â»âã«æããŠãããã€ããŒãæ§åŒãã³ããããŸãã

以äžã®JSONãã€ããŒãæ§åŒãã³ããŒ&ããŒã¹ãããŸãã
{
"code": "0001",
"name": "æ¥æ¬",
"kana": "ããŠãã§ãŠ",
"hira": "ãšãããã",
"normalize": {
"name": "æ¥æ¬éè¡",
"kana": "ããã³ã®ã³ã³ãŠ",
"roma": "nihonginkou",
"hira": "ã«ã»ããããã"
},
"url": "https://bank.teraren.com/banks/0001.json",
"branches_url": "https://bank.teraren.com/banks/0001/branches.json",
"created_at": "2021-10-15T12:13:26.433+09:00",
"updated_at": "2021-10-15T12:13:26.433+09:00"
}次ã«ã[ã¿ãŒã²ããçæ]ãæŒäžããŸãã
ã³ããããJSONãã€ããŒããåºã«[ã¿ãŒã²ãã]ãçæãããŸãã
ããã«ãã£ãŠãJSONå¿çããç¹å®ã®å€ãæœåºããä»çµã¿ãããŒã³ãŒãã§äœæã§ããŸããã

æåŸã«â£ã¹ãããã®åºåãäœæããŠãããŸãã
ã¢ãŠãã©ã€ã³äžã®[åºå]ã¹ããããéžæãã[åºåã®äœæ]ãã¿ã³ããã以äžã®åºåå€ãèšå®ããŸãã
ã»BankNameïŒéèæ©é¢ååãåºåå€
ã»BankKanaïŒéèæ©é¢ã«ãåãåºåå€
ã»BankRomaïŒéèæ©é¢ããŒãååãåºåå€

远å åŸã«ã[ç·šéã¢ãŒããçµäº]ãæŒäžããŸãã
ããããã®åºå倿°ã®å€ã«ãå³åŽã®ããŒã¿ãã«ã®JSON Parserã¹ãããã§ã¿ãŒã²ããã®nomarlizeããŒãã«å«ãŸãã以äžããŒã¿ãã«ããããããã©ãã°ïŒããããã§é
眮ããŸãã
ã»name ã BankNameã®å€ã«
ã»kana ã BankKanaã®å€ã«
ã»romaãBankRomaã®å€ã«

ããã§ã飿ºæ©èœã®å šã¹ãããâ ããâ£ãŸã§ã宿ããŸããã
ïŒïŒãã¹ãå®è¡ ãš å ¬é
ãŸãã¯ãäœæããã¹ãããã[ä¿å]ãã¿ã³ã§ä¿åããŸãã
æåŸã«åäœç¢ºèªãè¡ããŸãã[ãã¹ã]ãã¿ã³ãæŒäžããŸãã
ãã¹ãã¢ã¯ã·ã§ã³ç»é¢ãããããããŸãã
ããã§ãBank Codeã«éèæ©é¢ã³ãŒãã®4æ¡ãå
¥åãã
äŸïŒ0001
[ãã¹ããå®è¡]ãæŒäžããŸãã

å®è¡çµæã®ãªã³ã¯ãã¯ãªãã¯ããŸãã

å®è¡çµæãšããŠãåºåããŒã¿ã«ããããïŒã€ã®å€ãæ£ããåé ã§ããããšã確èªã§ããŸãã

以äžã§ã飿ºéšåãšããŠã®åºæ¬æ©èœã宿ããŸããã
æ¬çªå©çšã«åããŠã¯ãããŒã¿å
¥åãä»ã·ã¹ãã ããã®å¿çã«å¯Ÿãããã§ãã¯æ©èœã远å å®è£
ããããšãå¿
èŠã§ãã
ä»åã®æçš¿ã§ã¯ããããŒã³ãŒãã§é£æºæ©èœãäœæããããšããç¯å²ã«ãããŠ
ã®ãæ¡å
ãšãããŠãã ããã
次åã¯ãã®é£æºæ©èœãåŒã³åºããéèæ©é¢æ
å ±ãååŸã§ããã«ã¹ã¿ã ã¢ããªã±ãŒã·ã§ã³ãäœæããŠãããããšæããŸãã