รับทําเว็บไซต์ รับทํา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