รับทําเว็บไซต์ รับทําseo
บทความที่น่าสนใจ

บทความ ที่น่าสนใจ

เขียน PHP ดึงข้อมูลจาก SAP ด้วย SAPRFC !!!

    การเชื่อมต่อจาก PHP ไปที่ SAP สามารถทำได้สองวิธีครับ คือใช้ RFC กับใช้ SOAP แต่ผมเลือกใช้ RFC เพราะมีคนเก่ง ๆ ทำ PHP Extension ที่เรียกว่า SAPRFC ให้เราแล้ว ทำเป็น API พร้อมให้เราเรียกใช้ได้เลย
     
    แนวคิดของ SAP เนี่ย เขาจะอนุญาตให้โปรแกรมคอมพิวเตอร์ภายนอกเรียกเข้ามาที่ SAP ได้ แต่ไม่ให้เรียกเข้ามาตรง ๆ ตามใจชอบอะไรแบบนั้น คือจะต้องเรียก Function ที่เตรียมเอาไว้ใน SAP ซึ่ง Function ดังกล่าวก็จะมี Parameter สำหรับรับเข้าและส่งออก และที่สำคัญ Function ดังกล่าวต้องสร้างเอาไว้โดยมีคุณสมบัติเป็น Remote-enabled Module

    SAPRFC คืออะไร
    SAPRFC คือ โมดูลเสริมสำหรับ PHP 5 โดยที่เจ้า SAPRFC จะมีฟังก์ชันการทำงานที่สามารถเรียกใช้งานฟังก์ชันโมดูลด้วยภาษา ABAP ที่อยู่ใน SAP R/3 ได้ด้วยเพียงแค่เรียกผ่านคำสั่งของ PHP ทำให้เราสามารถพัฒนาเว็บที่เชื่อมต่อข้อมูลกับ SAP ได้ง่ายขึ้นมากๆ

    สิ่งจำเป็นสำหรับเชื่อมต่อ PHP ไปที่ SAP
    1. ดาวน์โหลด SAPRFC ที่ http://saprfc.sourceforge.net/ และทำการติดตั้งให้เรียบร้อย

    2. ติดตั้ง XAMPP 1.7.1 (อย่าใช้เวอร์ชันล่าสุดน่ะครับ) ซึ่งประกอบด้วย PHP 5.28 ที่ดูแล้วน่าจะใช้งาน SAPRFC module ได้ไม่มีปัญหาที่สุด
     
    ขั้นตอน
    1. หลังจากเราติดตั้ง XAMPP แล้วให้ทำการ copy ไฟล์ php_saprfc_528.dll จาก saprfc/ext มาวางที่ /php/ext/ ใน XAMPP จากนั้นเปิดไฟล์ php.ini ใน XAMPP และเพิ่มคำสั่ง extension=php_saprfc_528.dll เสร็จแล้วให้ทำการ start Apache

    2. ที่ระบบ SAP เราจำเป็นต้องทำการเปิดสร้างโมดูลใน SAP เพื่อให้ระบบภายนอกสามารถเข้าถึงข้อมูล SAP ผ่านทาง RFC ได้ สิ่งที่เราต้องทำคือสร้างฟังก์ชันโมดูลชื่อ ‘remote-enabled’ ใน SAP จากนั้นจึงค่อยเขียนส่วนโปรแกรมต่างๆ เพื่อให้ Importing and Exporting เชื่อมต่อข้อมูลกับระบบ PHP ภายนอกด้วยภาษา ABAP ได้ตามต้องการ

    3. ทำการ copy ไฟล์ saprfc.php จาก saprfc โฟลเดอร์ ไปวางที่โฟลเดอร์โปรเจคของเราที่อยู่ใน htdocs ใน  XAMPP จากนั้นเราจะสามารถเรียกใช้ functions ที่อยู่ในไฟล์เพื่อใช้สร้างการเชื่อมต่อ login ไปหา SAP และเข้าถึงฟังก์ชันโมดูล remote-enabled ได้

    ทดสอบ code php


    require_once('saprfc.php');
    $submitted = $_GET['submitted'];
    /**
     * Login to SAP system
     * @param String $user
     * @param String $pwd
     */
    function login($user, $pwd) {
        //Create SAPRFC instance
        $sap = new saprfc(array(
                "logindata" =>; array(
                      "ASHOST"  =>; "HOSTNAME",
                      "SYSNR"   =>; "SYSTEM NUMBER",
                      "CLIENT"  =>; "CLIENT NUMBEr",
                          "USER"    =>; "USERNAME",
                      "PASSWD"  =>; "PASSWORD"
                        ),
                "show_errors"=>;true,
                "debug"      =>;false));
     
        return $sap;
    }
    function logoff($sap) {
        $sap->;logoff();
    }
    /**
     * Function to call SAP RFC
     * @param saprfc $sap
     */
    function callRFC($sap, $params) {
        $cust_params = $params['cust_params'];
        $task_params = $params['task_params'];
        $proj_params = $params['proj_params'];
        $result = $sap->;callFunction("ZGRAPH_TOTALDAYS_RFC",
                 array(
                       array("IMPORT","CUST_PARAMS",$cust_params),
                       array("IMPORT","TASK_PARAMS",$task_params),
                       array("IMPORT","PROJ_PARAMS",$proj_params),
                       array("EXPORT","CATEGORIES",array()),
                       array("EXPORT","DATA_ACTUAL",array()),
                       array("EXPORT","DATA_ESTIMATE",array())
                           )
                        );
        return $result;
    }

บทความที่น่าสนใจ

บทความ ล่าสุด

บทความ ความรู้ด้านไอที, คอมพิวเตอร์ Techonlogy, Gadget, ความรู้เกี่ยวกับคอมพิวเตอร์ กับทาง SoftMelt.com