Saturday, October 13, 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 มาครับ



ท่านสามารถอ่านบทความนี้ผ่านทาง Oracle-Java อีกทางนึงครับ

Tuesday, October 9, 2007

Oracle-Java


ไม่กี่วันก่อนมีเมลล์ส่งมาที่เรา โดยคุณ kim โดยเป็นเมลล์ที่ Invite ใหเรา้เข้าไปร่วมกับ Oracle-Java Blog ที่เขียนเกี่ยวกับ Oracle และ Java ตามชื่อนั่นแหละครับ นอกจากนั้นยังมีข่าวสารใหม่ๆในโลกสารสนเทศมาอับเดดอีกต่างหาก



ในทีแรก ไม่คิดอะไร เพราะเราเพิ่งจะเริ่มเขียน Blog ด้วยเหตุผลที่ต้องการ ฝึกฝนตัวเองในการเรียบเรียงคำพูดหรือความคิดเพื่อที่จะได้นำมาถ่ายถอดได้ ก็เริ่มต้นด้วยการ Post บทความเกี่ยวกับตัวเราเองลงไปก่อน หลังจากนั้นก็มีความคิดว่าจะ Post บทความที่เป็นความรู้ทาง Technology ที่เราได้เจอหรือพบมาลงไปด้วย เพื่อจะเป็นประโยชน์ให้กับประเทศไทยได้บ้าง เพราะเรา Post ลงไปเป็นภาษาไทย (โคดรักชาติ) หลังจาก Post บทความไปได้ 2 บทความ อันหนึ่งตั้งใจเขียนส่วนอีกอัน แหะๆ Post ไปเพราะว่าเราต้องการให้มันสม่ำเสมอ คิดว่าไ่ม่ค่อยมีประโยชน์อะไรมากนัก ไม่คิดเลยว่าจากการกระทำของเรานั้นจะนำพาให้เราได้เข้าไปเป็นคนที่สามารถ Post บทความใน Blog ที่เราเข้าไปหาข้อมูลบ่อยๆได้ ไม่น่าเชื่อ ไม่คิดมาก่อน ว่าเขาจะอนุญาติให้เราเข้าไประบายในที่ๆนั้นได้ ไม่รู้ว่าเวลาเขาจะให้ออกจะมี Invite มาไหมเนอะ 555 (ดีใจที่ได้เข้าไปร่วม Join ครับ)

Saturday, September 22, 2007

รูปที่ ช่องใส่ addess



พอดีสงสัยว่าเวลาเราพิมพ์ URL ใส่ช่อง Address แล้วทำไมบางเวบถึงมีรูปบางเวบถึงไม่มีรูป เลยลอง View Source ดูถึงได้เห็นว่า เขาใช้ตามนี้ครับ


< link rel="shortcut icon" href="pics/shotcut.ico" />


Saturday, September 15, 2007

การกำหนดสิทธ์ในการเข้า Page บน Oacle Portal


อยากเริ่มต้นเขียนบทความที่คิดว่ามีประโยชน์นานแล้ววันนี้ได้ลองสักที ไม่รู้ว่าจะรู้เรื่องกันไหมนะครับ พอดีได้รับงานให้มาดูเรื่องการ Set Priviledge ให้กับ Tab Page ที่เราสร้างให้ไว้ใน Oracle Portal เพื่อว่ามันจะเป็นประโยชน์บ้าง




โดยที่เริ่มต้นเราจะต้องสร้าง User และ Group ขึ้นใน OID ก่อนเพื่อที่จะไว้ใช้ทดลองเวลาที่เราสร้าง Page ใน Portal เสร็จแล้ว โดยเราได้สร้าง User และ Group ตามนี้
1. สร้าง User ขึ้นมา 2 User เพื่อไว้ใช้ในการทดสอบ โดยเราได้สร้างไว้เป็น manager1 และ sale1
2. สร้าง Group มาเป็น 3 Group ดังนี้คือ Admin , Manager และ Sale
3. กำหนดสมาชิกของ Group ที่สร้างขึ้นมาดังนี้

  • ให้ User manager1 เป็นสมาชิกของ Group Manager
  • ให้ User sale1 เป็นสมาชิกของ Group Sale
  • ให้ Group Manager และ Sale เป็นสมาชิกของ Group Admin



    หลังจากที่เรามี User เพื่อไว้ใช้ในการ ทดสอบแล้ว ก็มาสร้าง Page ใน Oracle Portal ได้
    1. เมื่อเรา Log In เข้ามาให้เรา สร้าง Page Group ขึ้นมา
    2. สร้าง Page ขึ้นมาไว้ใน Page Group ที่เราสร้างไว้ก่อนหน้า
    3. กดเข้าไป Edit ที่ Page ที่เราสร้างขึ้นมา แล้วสร้าง Tab ขึ้นมา 3 Tab โดยตั้งชื่อ Tab ดังนี้

  • Admin
  • Manager
  • Sale

    4. เข้าไปที่ Edit Tab แล้วเข้าไปกำหนด สิทธในการ เข้าถึง โดย Grant สิทธิให้ดังนี้
  • ที่ Admin Tab ให้เรากำหนด Group Admin มีสิทธิในการ View
  • ที่ Manager Tab ให้เรากำหนด Group Manager มีสิทธิในการ View
  • ที่ Sale Tab ให้เรากำหนด Group Sale มีสทธิในการ View


    เมื่อกำหนดสิทธิให้กับ Tab แล้วเวลาที่เรา Login ด้วย User manager1 เราก็จะไม่เห็น Tab Sale เวลาที่เรา Login ด้วย User sale1 เราก็จะไม่เห็น Tab Manager

  • Tuesday, September 11, 2007

    เหตุเกิดบนรถเมล์ (สาย 122 )



    ในวันที่ 11 เดือนกันยายน ปี 2007 วันที่อากาศร้อนอบอ่าว เป็นอากาศก่อนฝนจะตก ณ.เวลาประมาณ 19.30 น รถไฟใต้ดินจากหัวลำโพงไปบางซื่อได้มาจอดที่สถานีลาดพร้าว เราขึ้นมาจากรถไฟใต้ดินเพื่อต่อรถเมล์กลับบ้าน โดยปกติเราจะต้องเดินข้ามข้ามแยกรัชดาไปก่อน เพื่อไปขึ้นรถเมล์ที่สามารถมาจากทางรัชดาหรือว่าทางหน้าศาลได้ด้วย ที่ทำเช่นนี้เพราะมีความเชื่อว่ารถที่มาจากอีกสองทางจะมีความหนาแน่นของเพื่อนผู้เดินทางไปบนรถเมล์ร่วมกันกับเราน้อยกว่าที่มาจากทางลาดพร้าวทางเดียว ถึงแม้มันจะเป็นจริงบ้างไม่เป็นจริงบ้างก็ตาม


    ในวันนั้น หลังจากที่ขึ้นมาจากสถานีรถไฟใต้ดินข้าพเจ้าสังเกตเห็นรถเมล์คันสีแดง สาย 122 จอดตระหง่านอยู่ โดยที่ผู้โดยสารที่อยู่ในรถนั้นยังไม่แน่นขนัดไปด้วยผู้คน เราจึงตัดสินใจที่จะขึ้นรถขันนั้นเลยโดยไม่เดินข้ามแยกไป เมื่อขึ้นไปบนรถ เราสังเกตเห็นคนที่ยืนอยู่บนรถนั้นยืนกันเพียงฝั่งเดียวคือฝั่งที่นั่งคู่ ส่วนอีกด้านที่เป็นฝั่งเดียวกับผู้นั่งเดี่ยวกลับไม่มีใครมายืนเลยสักคนเดียว โดยที่ทางฝั่งผู้นั่งเดี่ยวนั้นจะมีนักกีฬานิโกรนั่งอยู่ เราไม่ได้คิดอะไร จึงเลือกไปยืนทางฝั่งเดียวกับที่นิโกรนั่งกันอยู่



    ช่วงเวลาที่รอไฟเขียวอยู่นั้นก็มีคนขึ้นมาเรื่อยแล้วก็มายืนทางฝั่งเดียวกันกับเรามากขึ้น ทำให้เรารู้สึกอึดอัดไป เมื่อสัญญาณไฟเขียวปรากฏขึ้นรถก็เคลื่อนตัวอย่างช้าๆ ไปข้างหน้า เมื่อพ้นแยกไปได้สักระยะโชเฟอร์รถเมล์ปหักออกมาทางเลนขวาเพื่อที่จะเคลื่อนตัวให้ได้เร็วขึ้น เมื่อรถเร็วขึ้นลมก็แรงขึ้นด้วย ลมกระแทกหน้าแรงมากกกกก ลมที่โกรกเข้ามามันน่าจะเป็นสัญญาณที่ดีในรถที่มีคนแออัดอยู่เพราะจะทำให้คลายความรู้สึกแออัดไปได้บ้าง แต่ว่าสัมผัสที่ลมพัดมานั้นกลับเป็นการเพิ่มความอึดอัดใจให้กับเรา กลิ่นเต่า



    โว้ววววววววววว ความอึดอัดกลับกลายเป็นความโคดอึดอัดเพราะหายใจไม่ค่อยสะดวก ต้องมากลั้นลมหายใจไม่ให้ดมกลิ่นเต่าของนิโกรอีก ยังโชคดีที่เมื่อถึงป้ายรถเมล์มีคนลงทำให้เราย้ายฝั่งยืนได้(คิดถึงกริยาคนรีบย้ายตามไปด้วย)ค่อยยังชั่ว แต่ก็ยังมีผู้โดยสารบางคนยืนตั้งแต่เราขึ้นรถจนเราลงจากรถแล้วเขาก็ยังยืนอยู่ฝั่งเดียวกับนิโกรอยู่อีก เราได้แต่หวังว่าเขาคงจะไม่เป็นอะไรเมื่อถึงที่หมาย 5555

    Monday, April 9, 2007

    Koh Tao (เกาะเต่า)

    เริ่มต้นเดินทางโดยไปที่ข้าวสารขึ้นรถทัวร์ของท่าเรือไป


    เวลาเมื่อเริ่มออกเดินทางเราออกเดินทางจากตรกข้าวสารกันประมาณ 3 ทุ่มครึ่ง ใช้เวลาเดินทางมากกว่า 5 ชม. แล้วก็ถึงท่าเรือลมพระยา

    ภาพที่ถ่ายจากท้ายเรือในบริเวณที่นั่งอยู่ แรงสั่นสะเทือนของเครื่องยนต์เรือทำให้ไม่สามารถที่คมชัดได้


    ภาพของผู้เดินทางมาคนหนึ่งที่ทำการสร้างสมดุลให้กับร่างกายโดยการปล่อยน้ำย่อยในกระเพาะออกมาเก็บไว้ในพาชนะที่เรียกว่าถุงพลาสติก หลังจากเดินทางบนเรือ




    เรือลมพระยาที่บรรทุกพวกเรามา


    ที่พัก ที่ใช้พำนักเป็นเวลาสองคืนเป็นรีสอร์ทชื่อว่า Black Tip Dive Resort


    จากการเดินทางอันยาวนานเราหยุดเดินทางต่อพักหนึ่ง กินข้าว แล้วจึงตกลงกันว่า จะไปเกาะนางยวนกัน


    พาหนะที่เราใช้ในการเดินทางไปที่เกาะนางยวนกัน
    กับตันเรือ
    หินแห่งจินตนาการ(ตั้งเอง) ตั้งตะหง่านชูชันต้อนรับให้เราได้ขบคิดทันทีเมื่อไปถึงที่ท่าเรือ (เหมือนอะไรก็จินตนาการเอาเอง ของใครของมัน)


    ภาพของเกาะนางยวนเมื่อปี 2528 (เชื่อมะ)

    ชาวบ้านที่อาศัยอยู่บนเกาะแห่งนี้


    นักท่องเที่ยวชาวต่างชาติ ที่บังเอิญหลุดเข้ามาในกล้อง จริง จริงงงง




    ก้อนหินและทะเลแหวก มุมจากด้านล่าง




    เศษปะการังถูกเอามาเรียงต่อกันเพื่อจารึก




    เอากะเขาบ้าง หวังว่าคงไม่โดนจับ




    รูปถ่ายจากวิวด้านบนของจุดชมวิวทำให้เราสัมผัสได้ถึงความใสของน้ำทะเล




    ภาพของเกาะนางยวนจากจุดชมวิวที่สูงที่สุดของเกาะนี้




    หลังจากที่ได้สัมผัสกับเกาะนางยวนแล้วเราก็นั่งเรือลำเดิมกลับกัน




    ภาพพระอาทิตย์ตก ไม่เข้าใจเหมือนกันว่าทำไมต้องถ่ายมันทุกที



    น่าเสียดายที่กล้องไม่สามารถต้านทานแรงดันของน้ำได้ไม่งั้นก็คงจะได้เอาภาพของวันที่สองที่ได้ไปดำน้ำมาให้ดู ภาพสุดท้ายเป็นภาพท่าเรือที่เราขึ้นมากัน