Sunday, 14 October 2007

Oracle XML Publisher 5.6.2 [1]

หากว่าใครได้เคยมีโอกาศได้ใช้ Oracle XML Publisher คงจะรู้ว่ามันคือ Report Tool ที่ Oracle ได้เอาไว้ใช้ในการจัดกับ Layout ของ Report โดยในการใช้งานนั้น Oracle ได้นำมาใช้ครั้งแรกใน Oracle E-Business Suite 11.5.10 โดยหน้าที่ของ XML Publisher ก็คือการจัดรูปแบบของเอกสารที่เป็น XML ซึ่งหากว่าในระบบมีการใช้งาน XML ก็จะนำ XML Publisher นี้ไปใช้ได้ ซึ่งนั่นหมายถึง Web Service ด้วยครับ

ใน Oracle XML Publisher 5.6.2 นี้ ได้มี API ที่ไว้สร้าง XML เพื่อเป็น Datasource ให้กับ Report ขึ้นมา ซึ่งเราจะมาดูกันว่าหากเราจะสร้าง Datasource นั้นเราจะต้องทำอย่างไร

  1. เริ่มแรกให้เราไป Download Oracle XML Publisher 5.6.2 นี้มาก่อนครับ

  2. ขั้นตอนถัดมาให้เรานำ Library มาใช้ โดย Library จะอยู่ใน <zip_dir>/manual/lib

  3. จากนั้นให้เราสร้าง xml ขึ้นมาเพื่อไว้ใช้เป็น template ของ Datasource โดยในตัวอย่างนี้จะทำการดึงข้อมูลจาก Table Employee ใน HR Schema ซึ่งเป็น Sample Schema ใน Oracle Database มาแสดงโดยที่มี JOB_ID เป็น Parameter นะครับ


  4. <?xml version="1.0" encoding="WINDOWS-1252" ?>

    <dataTemplate name="employeeData" description="Employees Data"

    defaultPackage="" Version="1.0">

    <parameters>

    <parameter name="job" dataType="character"/>

    </parameters>

    <dataQuery>

    <sqlStatement name="Q1">

    <![CDATA[

    SELECT em.employee_id,

    em.first_name||' '||em.last_name ename,

    em.email,

    em.phone_number,

    em.salary,

    em.commission_pct

    FROM employees em

    WHERE em.Job_Id = :job

    ]]>

    </sqlStatement>

    </dataQuery>

    <dataSructure>

    <group name="G_EMP" source="Q1">

    <element name="ID" value="employee_id"/>

    <element name="NAME" value="ename"/>

    <element name="EMAIL" value="email"/>

    <element name="PHONE_NUMBER" value="phone_number"/>

    <element name="SALARY" value="salary"/>

    <element name="COMMISSTION" value="commission_pct"/>

    </group>

    </dataSructure>

    </dataTemplate>



  5. หลังจากที่เรามี Template สำหรับ Datasource แล้วก็มา นำมาใช้ใน Code Java ตามตัวอย่างได้เลยครับ


  6. package my.xml;

    import com.sun.java.util.collections.Hashtable;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import oracle.apps.xdo.XDOException;
    import oracle.apps.xdo.dataengine.DataProcessor;

    public class XMLSource {
    public static void main(String[] args) {
    try {
    // Create Connection And Connect To Database
    Class.forName("oracle.jdbc.OracleDriver");
    String url = "jdbc:oracle:thin:@192.168.2.19:1521:ORCL";
    java.sql.Connection jdbcConnection = DriverManager.getConnection(url,
    "HR", "HR");

    // New DataProcess and Set Template
    DataProcessor dataProcessor = new DataProcessor();
    dataProcessor.setDataTemplate("employeeDS.xml");

    // Create Parameter Hashtable and set to DataProcess
    Hashtable parameters = new Hashtable();
    parameters.put("job", "IT_PROG");
    dataProcessor.setParameters(parameters);

    // Set Connection to DataProcess
    dataProcessor.setConnection(jdbcConnection);

    // Generate Datasource to XML File
    dataProcessor.setOutput("employeeData.xml");
    // Process
    dataProcessor.processData();
    } catch (SQLException e) {
    System.out.println("SQLException " + e.getMessage());
    } catch (ClassNotFoundException e) {
    System.out.println("ClassNotFoundException " + e.getMessage());
    } catch (XDOException e) {
    System.out.println("XDOException" + e.getMessage());
    }
    }
    }

เมื่อ Code เสร็จแล้วให้เราลอง Run Code Java ดูเราจะได้ ไฟล์ XML ชื่อ employeeData.xml มาครับ

3 comments:

kim said...

ตัวนี้มาทดแทน Oracle Reports ใช่มั้ยครับ

อย่างนี้ในกรณีที่เราติดตั้ง Oracle E-Business Suite 11.5.10 ลงไป

จะยังมี Oracle Reports ให้ใช้ควบคู่กับ XML Publisher หรือจะเหลือแต่ XML Publisher เพียงอย่างเดียวครับ?

Anonymous said...

ลองใช้ดูแล้ว น่าใช้ทีเดียว แต่ไม่มีหนังสืออ่านเลย
และในเมืองไทย ยังไม่มี training

wii said...

ใช่ครับ,
ยังไงลองดูที่นี่ครับ
http://www.oracle.com/technology/products/xml-publisher/xmlpdocs.html
http://www.oracle.com/technology/products/xml-publisher/docs/XMLPEnterprise562UserGuide.pdf
เป็น official user guide
ปัจจุบันได้เปลี่ยนชื่อจาก XML Publisher เป็น BI Publisher ด้วยครับ