Service Broker Layer and Apex Rest Service : Part II

Keattisak Chinburarat
3 min readJan 25, 2017

--

จาก Service Broker Layer and Apex Rest Service : Part I มาต่อกันที่ ตัว Service Broker ครับ ส่วนนี้เราจะทำตัว class ที่เป็น Service และวางมาตราฐานการทำงานเอาไว้(interface) เพื่อให้ ตัว Implementation class ทำการเขียน Details อีกทีครับเริ่มด้วยตัว ServiceBroker Class

เราใช้ Strategy Pattern ในนี้เราเลยกำหนด ISLOSService เอาไว้ให้ Implement Class ไปเขียนต่อ ต่อมาเรามีกำหนดรูปแบบ โครงสร้างข้อมูล เพื่อส่งเข้า และส่งออกเป็น SLOSContext.SLOSRespond และ SLOSContext.SLOSRequest ดัง Code ด้านล่าง

โดย Project นี้เป็นการส่ง Information จะ Table(SObject) Opportunity ไปที่ Core Bank เลยให้ส่ง Opportunity เข้ามาที่ Constructor ของ Class SLOSRequest

งานต่อไปคือการขียน Implementation Class 1 เพื่อให้บริการเหมือนภาพด้านล่าง

โดยผมตั้งใจทำเป็น Mock Service เพื่อลองให้ Vendor อีกเจ้าทำ SOAP Service ให้เสร็จก่อน แล้วผมจะเขียน Implementation Class 2 แล้วสลับมาใช้แบบที่ไม่กระทบ code ที่ developer คนอื่นเรียกใช้เลย มาดู Implementation Class 1 ว่ามีหน้าตาเป็นอย่างไง ผมตั้งชื่อมันว่า SLOSServiceRestMock ชื่อก็บอกแล้วว่า Mock นะแจ๊ะ ….

SLOSServiceRestMock

อย่างแรกเราต้องทำการบอกว่าเรา ได้มาตราฐาน ISO อะไร นั้นก็คือ implements SLOSServiceBroker.ISLOSService เป็นตัวบอกว่าเราทำตามสิ่งที่ตกลงไว้ว่า class เราจะมีการทำงาน SLOSContext.SLOSRespond sendRequest(SLOSContext.SLOSRequest slosReq) ให้เรียกใช้ได้ แล้วใน class นี้เป็นการ CallOut ไปที่ Rest Service ที่ได้ อธิบายไปแล้วที่บทความ Service Broker Layer and Apex Rest Service : Part I

ถึงตรงนี้ทุกอย่างก็พร้อมแล้ว เรามาลอง RUN ดูกันดีกว่าว่าทำงานได้จริงหรือป่าวโดยเปิด Developer Console มาเลยจ้า

Salesforce Top Menu

พอเปิดขึ้นมาจะเห็นหน้าจอแบบด้านล่าง

developer Console

จากนั้นกด Key ลัด Ctrl+E หรือ ไปที่ Menu >> Debug >> Open Execute Anonymous Window

Anonymous Window

จากนั้นก็ลองเอา code ไป RUN เลย

ได้ความว่า Error !!!!!!!!!!!!!!!!!!!!!!!

call out error

ลองอ่าน debug log ดูก็เข้าใจว่าเราลืม add remote site นั้นเอง ดังนั้นก็จัดไปตามภาพด้านล่างเลย

ลอง Run อีกทีรอบนี้สำเร็จ

นอนตายตาหลับแล้ว!!!! ^ - ^

--

--

Keattisak Chinburarat
Keattisak Chinburarat

Written by Keattisak Chinburarat

Father, Husband, and Engineering Technical @Agoda

No responses yet