Visualforce ã¢ããªã±ãŒã·ã§ã³ã³ã³ããã®æ¢çŽ¢
åŠç¿ã®ç®ç
ãã®åå ãå®äºãããšã次ã®ããšãã§ããããã«ãªããŸãã
- Salesforce Classic ã§å®è¡ããã Visualforce ããŒãžãš Lightning Experience ã§å®è¡ãããåããŒãžã® 3 ã€ã®çžéç¹ã説æããã
- Lightning Experience ã§æ©èœãããããã«æŽæ°ããå¿
èŠããã 2 ã€ã®äžè¬çãªã³ãŒããã¿ãŒã³ã«ã€ããŠèª¬æããã
- Lightning Experience ã§å®è¡ãããšãã«ãVisualforce ããŒãžã®ããã©ã«ãå€ã«è¡ã 2 ã€ã®å€æŽç¹ãæããã
Visualforce ã¢ããªã±ãŒã·ã§ã³ã³ã³ããã®æ¢çŽ¢
Lightning Experience ã® Visualforce ãš Salesforce Classic ã® Visualforce ã®æå€§ã®éãã¯å®è¡ããç°å¢ã§ããSalesforce Classic ã§ã¯ãVisualforce ãããŒãžãèŠæ±ãç°å¢ããææãããŸããã€ãŸããVisualforce ãã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã«ãªããŸãã仿¹ Lightning Experience ã§ã¯ãVisualforce ãããã倧ã㪠Lightning Experience ãšããã³ã³ããå ã§ã©ããããã iframe ã®å åŽã§å®è¡ãããŸãã
ãã®ãããªå®è¡ã³ã³ããã¹ãã®å€æŽã«ãããVisualforce ããŒãžãã Salesforce ã¢ããªã±ãŒã·ã§ã³å šè¬ã«ããŸããŸãªåœ±é¿ãçããå¯èœæ§ããããŸãããã®åå ã§ã¯ãããã®å€æŽã«ã€ããŠèª¬æããŸãããããã€ãã®ç¹ã«ã€ããŠã¯ããããå¥ã®åå ã«è²ããããã§ã¯è©³çްã«ç«ã¡å ¥ããŸããã
å€åŽã® Lightning Experience ã³ã³ãã
ãŸãå€åŽã®ã³ã³ããã§ãã Lightning Experience ã¢ããªã±ãŒã·ã§ã³ããèŠãŠãããŸããLightning Experience ã³ã³ããã¯ãåäžããŒãžã¢ããªã±ãŒã·ã§ã³ã (SPA) ã§ã/lightning URL ããã¢ã¯ã»ã¹ããŸãã/lightning ããŒãžãèªã¿èŸŒãŸãããã®ã³ãŒããéå§ãããã¢ããªã±ãŒã·ã§ã³ã³ãŒããç°å¢ãåãä»åããŸãã
åäžããŒãžã¢ããªã±ãŒã·ã§ã³ããã®ãªãœãŒã¹ (éåžžã¯éç HTML ã·ã§ã«ãšå€æ°ã® JavaScript) ãèªã¿èŸŒãããã»ã¹ã¯ãè峿·±ããã®ã§ãããšåæã«è€éã§ããJavaScript ãã¬ãŒã ã¯ãŒã¯ (AngularJSãReact ãªã©) ã§äœæ¥ãããããšãããå Žåã¯ãLightning Experience ã /lightning ãšããŠèµ·åããããã¿ã®åºæ¬äºé ãããçšåºŠçè§£ããŠããããšã«ãªããŸãããããŠãã¯ã£ããèšã£ãŠããŸãã°ãå šå®¹ãç¥ãå¿ èŠã¯ãããŸãããLightning Experience ã¯å¶åŸ¡ã§ãããã®ã§ã¯ãããŸãããããã®å®è£ ã¯åžžã«é²åããŠããŸãã
ããã§èªèããŠããã¹ãéèŠãªããšã¯ãLightning Experienceãããã㯠/lightning ãèŠæ±ãçµ±æ¬ãããšããããšã§ããVisualforce ããŒãžã§ã¯ãããŸããããã®ãããLightning Experience ã課ãå¶çŽå ã§ããŒãžãæ©èœãããããšãå¿ èŠã«ãªããŸããLightning Experience ã¯èŠªã³ã³ããã¹ãã§ãVisualforce ããŒãžã¯åã³ã³ããã¹ãã§ããåã¯èŠªã«åŸããªããã°ãªããŸããã
å¶çŽã®ãã¡ Visualforce ã衚瀺ãããã¬ãŒã ã®ãµã€ãºãªã©äžéšã¯ãLightning Experience ããçŽæ¥çã«èª²ãããŸããããããå¶çŽã¯ãããããã察å¿ãããããããããããã®å¶çŽãã説æããŸãã
ä»ã®å¶çŽã¯æé»çã§ãLightning Experience ã§ã¯ãªããããŒãžãå®è¡ãããã©ãŠã¶ãŒããé©çšãããŸãããããã®å¶çŽã®å€ãã¯ãã»ãã¥ãªãã£ããã³ JavaScript å®è¡ã®å¶çŽãšé¢ä¿ããŠããŸããããŒãžã®å€§åã¯ã»ãã¥ãªãã£ã®å¶çŽã®åœ±é¿ãåããããšããªããå¶çŽã«åãããšããŠãåæã®æ®µéã§æç¢ºãªãšã©ãŒã¡ãã»ãŒãžã瀺ãããŸããJavaScript ã®ãšã©ãŒã¯æ€åºã蚺æãé£ããã®ã§ãããäžå®ã®ååããããŸãããã®ååã«ã€ããŠã¯åŸã»ã©èª¬æããŸãã
Visualforce ã® iframe
Lightning Experience ã§å®è¡ãã Visualforce ããŒãžã¯ãHTML iframe ã®å åŽã«è¡šç€ºãããŸããiframe ã¯ããã©ãŠã¶ãŒããŠã£ã³ããŠãã Lightning Experience ã®ã¡ã€ã³ã®åç §ã³ã³ããã¹ããšå¹ççã«åºå¥ãããçµã¿èŸŒã¿åç §ã³ã³ããã¹ããäœæããŸããããã«ãVisualforce ãšãã®èŠªã® Lightning Experience ã¢ããªã±ãŒã·ã§ã³éã«å¢çç·ãäœæããŸãã
Visualforce ããŒãžã iframe ã®å åŽã§å®è¡ããå©ç¹ã¯ãæäžäœã®ã³ã³ããã¹ããžã®ã¢ã¯ã»ã¹ã倿Žãå¿ èŠãšããªãããŒãžã®å Žåãiframe ã®å åŽã§å®è¡ãããš Salesforce Classic ã®ããŒãžãšããŠå®è¡ããå Žåãšã»ãŒåãã«ãªããŸãããã®ããããã¹ãŠã® Visualforce ããŒãžããLightning Experience ã®å€§ããç°ãªãããã¯ã°ã©ãŠã³ãèŠæ±ç°å¢ã«åãããŠå€æŽããå¿ èŠããããŸããããã®ç¹ã¯ãVisualforce ããµããŒãããããã«ããšããããæ©èœããããæŠç¥ã®éèŠãªéšåã§ãã
åœç¶ãªãããæäžäœã®åç §ã³ã³ããã¹ãã«ã¢ã¯ã»ã¹ããå¿ èŠã®ããããŒãžã«ã¯äœãã®å€æŽãå¿ èŠã§ãããã®å€æŽæ¹æ³ã«ã€ããŠã¯ã次ã®ã»ã¯ã·ã§ã³ã§å ·äœçã«èª¬æããŸãã
ããŒãžã Salesforce 以å€ã®ãµãŒãã¹ãšéä¿¡ããŠããå Žåãiframe ã«å¢çãèšå®ããããšã§ãçµç¹ã® CORS èšå®ããªã¢ãŒããµã€ãèšå®ãã¯ãªãã¯ãžã£ãã¯èšå®ãã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ãŒãªã©ãæŽæ°ããå¿ èŠãçããå ŽåããããŸããããããæŽæ°ã¯ Salesforce å€ã®ã»ãã¥ãªãã£ããªã·ãŒãèšå®ã«å·Šå³ããããããå ·äœçãªå€æŽæ¹æ³ã説æããããšã¯ã§ããŸãããããã§ã¯æ³šæãåèµ·ããããšã«ãšã©ããŸãã
æ°ããã³ã³ããã®åœ±é¿
Visualforce ããŒãžã Lightning Experience ã¢ããªã±ãŒã·ã§ã³å ã® iframe ã«åãèŸŒãæ°ãã Visualforce ã³ã³ããã«ãã圱é¿ã¯ãã»ãã¥ãªãã£ãšç¯å²ã® 2 çš®é¡ã«å€§å¥ãããŸãã
ç¹°ãè¿ãã«ãªããŸãããVisualforce ã®ããŒãžã®å€ãããšãããã倧åã¯ããã®åé¡ã®åœ±é¿ãåããŸããã仿¹ã圱é¿ãåããããŒãžã«ã€ããŠã¯ã転ã°ã¬å ã®æããå¿ èŠã§ããåé¡ã«ã€ããŠèªèããŠããã°ãåé¡ãçãããšãã«ãã®åå ããã°ããçªãæ¢ããããšãã§ããŸãã
ã»ãã¥ãªãã£äžã®åœ±é¿
圱é¿ãåã¶å¯èœæ§ã®ããã»ãã¥ãªãã£äžã®èŠçŽ ã¯æ¬¡ã®ãšããã§ãã
- ã»ãã·ã§ã³ã®ã¡ã³ããã³ã¹ããã³æŽæ°
- èªèšŒ
- ã¯ãã¹ãã¡ã€ã³èŠæ±
- åã蟌ã¿ã®å¶é
ãã®ãã¡ã¯ãã¹ãã¡ã€ã³èŠæ±ãžã®åœ±é¿ã«ã€ããŠã¯ç°¡åã«èª¬æãããšããã§ããã€ãŸãããã©ãŠã¶ãŒã®ãã«ãŠã£ã³ããŠã®ã³ã³ãã³ããããŸããŸãªãµãŒããŒããµãŒãã¹ãžã®èŠæ±ã«åºã¥ãå Žåããããã®èŠæ±ãæ³å®å€ã®ã³ã³ããã¹ãã«è¡šç€ºããããšåäœãè¡ãè©°ãå¯èœæ§ããããŸããããããå Žåã«å¿ èŠã«å¿ããŠãã¹ãããšã¯ãLightning Experience ã³ã³ããã¹ãå ã§ãŸãšããããã¹ãèŠæ±ããµãŒãã¹ãåŠçã§ããããã«æºåããŠããããšã§ããåè¿°ã®ãšããããã®å ·äœçãªåŠçæ³ã¯å€å²ã«ããããããããã§ãã®æ¹æ³ã説æããããšã¯ã§ããŸããã
ããã§ç¹ã«è¿°ã¹ãŠããããç¹ããã»ãã·ã§ã³ã®ã¡ã³ããã³ã¹ã§ããããã§èšããã»ãã·ã§ã³ããšã¯åºæ¬çã«ãèŠæ±ã®ãã³ã«ãŠãŒã¶ãŒåãšãã¹ã¯ãŒããå ¥åããªããŠãè¯ãããã«ããã©ãŠã¶ãŒãèŠæ±æã«åå©çšããäœããã®ããŒã¯ã³ã§ããå€ãã®å Žåã$Api.Session_ID ã°ããŒãã«å€æ°ã䜿çšããŠçŸåšã®ã»ãã·ã§ã³ã«ã¢ã¯ã»ã¹ããå¿ èŠããããŸãã
ãã®å Žåã®æ³šæç¹ã¯æ¬¡ã®ãšããã§ããèŠæ±ã®ãã¡ã€ã³ã«å¿ããŠã$Api.Session_ID ã¯ç°ãªãå€ãè¿ããŸããããã¯ã.salesforce.com ãã .force.com ãªã©ãã»ãã·ã§ã³äžã«ãã¹ãåã®å¢çãè¶ãããã³ã«ã»ãã·ã§ã³ ID ã®å€ãå€ããããã§ããéåžžãSalesforce ã§ã¯ãã¡ã€ã³éã®ã»ãã·ã§ã³ãã³ããªããééçã«åŠçãããŸãããã»ãã·ã§ã³ ID ãæž¡ãå Žåã¯ãæ£ãããã¡ã€ã³ãã $Api.Session_ID ã«å床ã¢ã¯ã»ã¹ããŠãæå¹ãªã»ãã·ã§ã³ ID ã«ããå¿ èŠãããå ŽåããããŸãã
Lightning Experience ãš Visualforce ããŒãžã¯ãä¿æããããã©ãŠã¶ãŒã³ã³ããã¹ããç°ãªãã ãã§ãªããæäŸããããã¡ã€ã³ãç°ãªããŸãããã®ããããã¹ãŠ 1 ã€ã®ãã©ãŠã¶ãŒãŠã£ã³ããŠã«è¡šç€ºãããŠããŠããVisualforce ã® iframe ã®å åŽãšã(Lightning Experience ã®å¥ã®éšåãšãªã) iframe ã®å€åŽãšã§ã¯ã»ãã·ã§ã³ ID ãç°ãªããŸããéåžžã®äœ¿çšæã¯ Salesforce ãš Lightning Experience ããã®åŠçãééçã«è¡ããŸãã仿¹ãã»ãã·ã§ã³ ID ã䜿ãåããŠããå Žå㯠(éåžžã¯å¥œãŸããããšã§ã¯ãããŸãã)ããã®åŠçæ³ãèŠçŽãå¿ èŠããããã®ãšæãããŸãã
ç¯å²ãžã®åœ±é¿
ç¯å²ãšã¯ãäž»ã«æ¬¡ã®ããšãæå³ããŸãã
- DOM ãžã®ã¢ã¯ã»ã¹ããã³å€æŽ
- JavaScript ã®ç¯å²ã衚瀺ãã¢ã¯ã»ã¹
- JavaScript ã®ã°ããŒãã«å€æ° (window.location ãªã©)
ãã®ãªã¹ããèŠãŠåä»ããã ãšæã£ãŠããå¿é ããããšã¯ãããŸããããã®æ ¹æ¬çãªèãæ¹ãããããããèšèã§èšããªãããä»äººã®ãã®ã«ã¯æãåºããªããšããããšã§ããç¹ã«ãèªèº«ã® JavaScript ã³ãŒã (ãã¹ã¿ã€ã«ã·ãŒãã«ãŒã«) ããããŒãžã®åç §ã³ã³ããã¹ãã®èŠçŽ (DOM ããŒãã JavaScript 倿°ãªã©) ã«åœ±é¿ããããšã¯ãããŸããããã®èŠªã® Lightning Experience ã³ã³ããã¹ããªã©å¥ã®åç §ã³ã³ããã¹ãã®èŠçŽ ã«ã¢ã¯ã»ã¹ããããšã¯ã§ããŸãããä»ã®ã³ã³ããã¹ãã«ãããã®ã«ã¯è§Šããªãããã«ããŸãã
å®éããã®çš®ã®éã¡ãç¯ããã¡ãªã³ãŒããã¿ãŒã³ã¯ãwindow.location ãæäœããŠå¥ã®ããŒãžã«ç§»åããããšã§ããããããéã¡ãããŸãã«ãå€ããããåœç€Ÿã§ã¯ãã®åé¡ã«ã€ããŠè©³è¿°ããŠããŸããããã®ã¢ãžã¥ãŒã«ã«éãããŸã§ã«ãããããããã»ã©èããŠããããšã§ãããã
æåŸã«ããäžèšå ãããšã çµéšè±å¯ãª JavaScript éçºè ã§ããã°ãã芪ã®åç §ã³ã³ããã¹ãã«ã¯ã¢ã¯ã»ã¹ã§ããªãããšããåé¡ã«ã¯ contentWindow ã window.parent ãªã©ã䜿çšããŠå¯ŸåŠããæ¹æ³ãå¿åŸãŠãããšèãããããããŸãããã ããã¯æãéãã§ãããã®æ¹æ³ã§ã¯åãçºçå ã®ããªã·ãŒã«æµè§ŠãããããããããŸã (åè¿°ã®ãšãããVisualforce ãš Lightning Experience ã¯æäŸããããã¡ã€ã³ãç°ãªããŸã)ã. ãã®ããªã·ãŒã«æµè§Šããªããšããæçœãªããããã³ã°ãã°ãäºçŽ°ãªæç¶çãªãã°ã«çœ®ãæããããšã«ãããªããŸãããæéãæå¹æŽ»çšããããã«ã¯ããã°ãä¿®æ£ããŠåãã®ã§ã¯ãªããç©äºãæ£ããããæ¹ã§è¡ããŸãã
ãã®å Žåã®æ£ããããæ¹ãšã¯ãäž»ãšããŠããã²ãŒã·ã§ã³ã®ããã« Visualforce ããŒãžã«çšæãããŠãã API ãã³ãŒã«ããããšã§ãããã¬ãŒã ã®å¢çãè¶ããŠé©çšããå¿ èŠãããå Žåã¯ãwindow.postMessage ã䜿çšããŠä»ã®ãã¬ãŒã ã®åä¿¡ã³ãŒãã«ã¡ãã»ãŒãžãéä¿¡ããŸãã
Lightning Experience ã«ããã Visualforce ã®ããã©ã«ããšç°å¢ã®å€æŽ
Lightning Experience ã§ Visualforce ããŒãžãå®è¡äžãããã¯ã°ã©ãŠã³ãã§ããŸããŸãªãã€ããŒãã§ã³ãžãè¡ãããŸãããããã倿Žã«ããã倧åã®ããŒãžã Lightning Experience ã³ã³ããã§ããšããããæ©èœãããããã«ãªããããããã¯ã°ã©ãŠã³ãã®åŠçãããããããšæãããšããããŸãã仿¹ãé«åºŠãªã¢ããªã±ãŒã·ã§ã³ãããŒã«åãçµãã§ãããšãããåä»ãªåé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãè¡ã£ãŠãããšããªã©ã¯ãå®éã«è¡ãããŠããåŠçãç¥ããããšæãã§ãããã
ããã¯ã°ã©ãŠã³ãã§ã®å€æŽã®äžã«ã¯ã·ã³ãã«ã§ãæèããã°æçœãªãã®ããããŸããããšãã°ãLightning Experience ã§å®è¡ããã Visualforce ããŒãžã§ã¯åžžã« Salesforce Classic ã®æšæºã®ããããŒãšãµã€ãããŒãæå¶ãããŸãããŸããç®ã«èŠããªã倿Žãªãããåæ§ã«å€§ããªåœ±é¿ãåãŒããã®ããããŸãã
showHeader and sidebar Attributes Are Always falseshowHeader ããã³ sidebar 屿§ã¯åžžã« false
ãããã®å±æ§ã¯ãVisualforce ããŒãžäžã® Salesforce Classic ã®ããããŒãšãµã€ãããŒã«åœ±é¿ããŸããLightning Experience ã§ããŒãžãå®è¡ãããšãã¯ãLightning Experience ã®ããã²ãŒã·ã§ã³èŠçŽ ãåªå ããããããSalesforce Classic ã®ããããŒãšãµã€ãããŒã¯åžžã«æå¶ãããŸããLightning Experience ã®ããããŒããµã€ãããŒã¯æå¶ã§ããªãããããã®ããããŒããµã€ãããŒã«å¯Ÿå¿ãã屿§ã¯ãããŸããã
Salesforce Classic ãš Lightning Experience ã§ããŒãžãå ±æããå ŽåããSalesforce Classic ã§ããŒãžãå®è¡ãããšãã«äœ¿çšããå€ã«ãããã®å±æ§ãèšå®ã§ããŸãã
sforce.one JavaScript ãŠãŒãã£ãªãã£ãªããžã§ã¯ã
sforce.one ã¯ãSF æ ç»ã«åºãŠãã Salesforce é å Ž* ã§åãããã€ããäœãã®ããã«èãããŸãããå®éã¯ãç¬èªã® JavaScript ã³ãŒãã§äœ¿çšå¯èœãªå€æ°ã®äŸ¿å©ãªé¢æ°ãåãããŠãŒãã£ãªãã£ãªããžã§ã¯ãã§ãã
sforce.one ã¯ãLightning Experience ãŸã㯠Salesforce ã¢ããªã±ãŒã·ã§ã³ã§å®è¡ããããŒãžã«èªåçã«æ¿å ¥ããã JavaScript ãããã¬ãŒã³ã³ãœãŒã«ã Web éçºè ã®ãªãœãŒã¹ãªã¹ãã«è¡šç€ºãããŸãããã®ãªããžã§ã¯ãã远å ããããã«å¿ èŠãªäœæ¥ã¯äœããªãããã®ãªããžã§ã¯ããæå¶ããæ¹æ³ããããŸããã(æ®å¿µãªãããsforce.one ã Salesforce Classic ã® Visualforce ããŒãžã«æ¿å ¥ããæ¹æ³ããããŸãã)ã
sforce.one ã¯äž»ãšããŠããã²ãŒã·ã§ã³ã€ãã³ãã®èµ·åã«äœ¿çšãããŸãã詳现ã¯ããã®åŸã®ãããã²ãŒã·ã§ã³ã®ç®¡çãåå ã§èª¬æããŸãã
____________________
* Salesforce é å Žã¯å®åšããŸãããâ
ãªãœãŒã¹
- ã»ãã·ã§ã³ã»ãã¥ãªãã£èšå®ã®å€æŽ
- Visualforce éçºè ã¬ã€ã
- Mozilla Development Network: HTML Inline Frame èŠçŽ (<iframe>)
- Mozilla Development Network: Content Security Policy ã®å©ç𿹿³
