Export Object dengan User Defined XML Format di IBM Maximo

Saya ingin share tentang bagaimana cara export data dari IBM Maximo ke dalam file XML dengan format bebas (user defined). Hal ini dipengaruhi oleh kebutuhan, semisal kita ingin load data dari Maximo ke aplikasi lain tidak dalam bentuk flat file tetapi melainkan dalam bentuk XML yang formatnya harus ‘handshake’ antara 2 pihak. Kita dapat melakukannya dengan Automation Script. Contoh jika ingin share data item, cukup dengan Automation Script dengan launch point action di object item.

Yang dapat dimanfaatkan adalah library bawaan Java untuk parsing ke XML yaitu W3C DOM dan Java XML Parser. Oke, langsung saja saya share coding Automation Script yang berisikan perintah untuk eksport data ke XML dengan format bebas. Penjelasannya dapat dilihat pada bagian hashtag atau comment.

#import package Maximo
from psdi.server import MXServer
#import package bawaan Java
from java.io import File;
from javax.xml.parsers import DocumentBuilder;
from javax.xml.parsers import DocumentBuilderFactory;
from javax.xml.parsers import ParserConfigurationException;
from javax.xml.transform import Transformer;
from javax.xml.transform import TransformerException;
from javax.xml.transform import TransformerFactory;
from javax.xml.transform.dom import DOMSource;
from javax.xml.transform.stream import StreamResult;
from org.w3c.dom import Attr;
from org.w3c.dom import Document;
from org.w3c.dom import Element;
from java.text import SimpleDateFormat;
from java.util import Date;

mx = MXServer.getMXServer();
ui = mx.getSystemUserInfo();
#set path file
filepath = "C:\\export_item.xml";

#initiate factory XML dan draft XMLnya
xmlFactory = DocumentBuilderFactory.newInstance();
xmlBuilder = xmlFactory.newDocumentBuilder();
xml = xmlBuilder.newDocument();

#ini headernya, pada contoh saya beri value dari attribute itemnum
header = xml.createElement("Item");
header.setAttribute("itemnum", mbo.getString("itemnum"));
xml.appendChild(header);

#ini child header dan saya beri valuenya dari item description
description = xml.createElement("Description");
description.appendChild(xml.createTextNode(mbo.getString("description")));
header.appendChild(description);

#flushing ke XML
transformerFactory = TransformerFactory.newInstance();
transformer = transformerFactory.newTransformer();
source = DOMSource(xml);
#flush ke file berdasarkan file path
result = StreamResult(File(filepath));
#transformasi ke format
transformer.transform(source,result);

Seperti apa hasilnya? Dapat dilihat seperti di bawah ini :

<?xml version="1.0" encoding="UTF-8" ?>
<item itemnum="XXXXXXXXX">
	<description>YYYYYYYYYY</description>
</item>

Yah dari sini dapat diambil kesimpulan bahwa XML Parser existing Java OOTB di Maximo. Untuk inovasi dan pengembangannya tergantung kreativitas masing-masing developer. Salam hangat 😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.