[SCCD] Create Table of new Object in application

หากมีความจำเป็นในการเก็บข้อมูลในลักษณะ Multiple Object เราสามารใช้ Table Control มาตอบโจทย์ลักษณะแบบนี้ได้ ตัวอย่างของ Entry นี้จะแสดงวิธีการสร้าง Table Control ที่ทำการเก็บ object ที่เป็น custom object (MAINOBJ) ซึ่งสามารถนำไปประยุกต์ใช้กับ Requirement ต่างๆ ได้

1. ใน Database configuration สร้าง new object (ex: MAINOBJ)
2. สร้างอีก object นึงเพื่อเก็บข้อมูลที่เป็น multiple children (ex: TABLEOBJ)
3. ใน TABLEOBJ สร้าง 1 attribute เพื่อเก็บ key หลักที่ผูกกับ MAINOBJ (ex: recordkey)
4. ใน MAINOBJ สร้าง Relationship (ex: RELATIONOBJ) โดยเลือก child object เป็น TABLEOBJ
และ Where Clause คือ recordkey=:mainobjid

5. Apply Configuration Change

6. ใน Application Designer สร้าง Power Application ใหม่ โดยเลือก Object เป็น MAINOBJ
7. เพิ่ม Tab ใหม่ ชื่อ Table จากนั้นสร้าง Section ใต้ Table นั้น
8. ลาก Table Control เข้ามาวางไว้ใน Section จากนั้น กำหนด Attribute ดังนี้

Bean Class : custom.webclient.bean.RelationObjTable (สร้างในข้อ 10.)
Order By : tableobjid
Data source ID : ใส่ id ของ Table
Relationship : RELATIONOBJ

9. ใส่ button group และ button ใน Table โดยกำหนด property ของ button ดังนี้

event : addrow
Data source ID : ใส่ id ของ Table

10. create java file โดยมี code ตามนี้

package custom.webclient.bean;

import java.rmi.RemoteException;

import psdi.webclient.system.beans.*;
import psdi.mbo.MboRemote;
import psdi.util.logging.FixedLoggerNames;
import psdi.util.logging.MXLogger;
import psdi.util.logging.MXLoggerFactory;
import psdi.util.MXException;

public class RelationObjTable extends DataBean
{

MXLogger appLog = MXLoggerFactory.getLogger(FixedLoggerNames.LOGGERNAME_APP + “.myDialogBox”);

public void initialize() throws MXException, RemoteException
{
System.out.println(“initialize()”);
super.initialize();
}

public int addrow() throws MXException
{

int i = super.addrow();

appLog.info(“myDialogBoxBean :: enter dosomething ……”) ;
System.out.println(“addrow”);
try
{
MboRemote owner = this.getMbo().getOwner();
System.out.println(“Owner Name = “+owner.getName());
if(owner != null)
{
String mainobjid = owner.getString(“MAINOBJID”);
System.out.println(“MAINOBJID value = “+mainobjid);
setValue(“RECORDKEY”,mainobjid);
}

}catch (Exception e)
{
appLog.error(“ERROR: ” + e + “n” + e.getStackTrace());
}

return i;
}

}

11. Compile แล้วนำ class file ที่ได้ไปไว้ที่ SMP\maximo\applications\maximo\maximouiweb\webmodule\WEB-INF\classes\custom\webclient\bean
12. Build new Ear และ Redeploy Application

Social tagging: > > > > > >

Leave a Reply