Maximoã§æ·»ä»ãããCSVãã¡ã€ã«ããã¬ãã¥ãŒãããã€ã¢ãã°ãäœæããæ¹æ³
ä»åã¯èªååã¹ã¯ãªããããã³ããŒã©ãªã³ã°ã®å¿çšãšããŠãæ·»ä»ãããCSVãã¡ã€ã«ãããŒãã«ã«å±éããã¬ãã¥ãŒããæ¹æ³ã解説ããŸãã
å®çŸã«ããã£ãŠå¿
èŠãªããšã¯ä»¥äžã®éãã§ãã
å
å®¹ãæ ŒçŽããMBOïŒããŒãã«ïŒã®äœæ
CSVãã¡ã€ã«ãèªã¿èŸŒãèªååã¹ã¯ãªããã®äœæ
ãã€ã¢ãã°ããã¯ã¹ã®å®çŸ©
é ã«å®è£
ããŠãããŸãããããŸãã¯å
å®¹ãæ ŒçŽãããããã®MBOå®çŸ©ãäœæããŸããæ³šæããªããã°ãªããªãããšã¯æ°žç¶MBOãäœæãããšãã¡ã€ã«ãéããã³ã«DBãžè¡ãä¿åãããŠããŸããŸãããããã£ãŠãã¬ãã¥ãŒããå Žåã¯ãéæ°žç¶MBOã䜿ã£ãŠã¡ã¢ãªã®ã¿ã«ããŒã¿ãå±éããããã«ããŸããéæ°žç¶MBOã¯DBã«ããŒãã«ãäœæããã«Maximoã®ã¡ã¢ãªäžã«ã ãããŒã¿ãæ ŒçŽããŸããéæ°žç¶MBOã䜿ãããšã«ãã£ãŠMaximoã¢ããªã±ãŒã·ã§ã³ããDBããŒãã«ãªãã«ããŒã¿ãžã¢ã¯ã»ã¹ããããšãã§ããããã«ãªããŸãã
éæ°žç¶MBOã¯ä»¥äžã®ããã«æ°èŠãªããžã§ã¯ãäœææã«æ°žç¶ïŒPersistentïŒã®ãã§ãã¯ããªãã«ããŸããããã«ãã£ãŠãªããžã§ã¯ãå
šäœãéæ°žç¶ã«ãªããŸãã
次ã«å±æ§ã®èšå®ã§ããä»åã¯ãã¬ãã¥ãŒãšããããšã§C1ããC20ãŸã§ã®20ã«ã©ã ãäœæããŸããæ®å¿µãªããå¯å€ã®ããŒã¿ãæ±ãããšã¯é£ããã®ã§ãå¿
èŠãªæ°ã ãçšæããŠãã ããã屿§ã¯ä»¥äžã®ããã«C20ãŸã§å®çŸ©ããŸãã
æåŸã«DOCLINKSãªããžã§ã¯ãããCSVPREVIEWãªããžã§ã¯ããžã®é¢ä¿ãå®çŸ©ããŸããéæ°žç¶MBOã¯DBã¢ã¯ã»ã¹ã§ããŒã¿ãååŸããªãããé¢ä¿åã ãå®çŸ©ããŠä»ã¯ç©ºã«èšå®ããŸãã
ä¿ååŸãããŒã¿ããŒã¹ã®æ§æå€æŽãè¡ã£ãŠãã ããã
èªååã¹ã¯ãªããã®èšå®ãè¡ããŸããéæ°žç¶MBOãèªååã¹ã¯ãªããã䜿ã£ãŠæäœããããšãå¯èœã§ããéæ°žç¶MBOã¯ããŒã¿ã空ã®ç¶æ
ã§å§ãŸããŸããããŒã¿ãå±éããã®ã¯èªååã¹ã¯ãªããã®åœ¹å²ã§ãããã®ãããèµ·åãã€ã³ãã¯ãªããžã§ã¯ãã®åæåæã«èšå®ããŸãã
ããããããã§æ³šæãå¿
èŠã«ãªããŸããèªååã¹ã¯ãªããå
ã§CSVãã¡ã€ã«ãèªã¿èŸŒã¿ãMBOã«ããŒã¿ãæ¿å
¥ããŠãããŸãããè¡ãæ¿å
¥ãããã³ã«åæåã®èªååã¹ã¯ãªãããèµ·åããŠããŸããŸãããããªããšã¹ã¯ãªããã®åŒã³åºããç¡éã«ç¶ãããšã«ãªããŸãããããé²ãã«ã¯ã以äžã®ããããã£ã1ã«èšå®ããŸããéæ°žç¶MBOã¯åæåæã«å
éšã§setupãšããã¡ãœãããåŒã³åºãããŸãããã®ããããã£ã¯setupãåŒã³åºããããšãã«åæåæã«ã»ããããèµ·åãã€ã³ãã®ã¹ã¯ãªãããåŒã¶ãªãã·ã§ã³ã§ããããã¯ãªããžã§ã¯ãèµ·åæã®1åã®ã¿åŒã³åºããããããsetupããåŒã³åºããããšãã«åŠçãéå§ãããã®ä»ã®ãšãã¯åŠçããªãããã«ããããšã§ç¡éã«ãŒããåé¿ããŸããèšå®ã倿ŽãLive RefreshãããŠãã ããã
èªååã¹ã¯ãªãããäœæããŸãããã€ã³ãã¯2ã€ã§ããæ·»ä»ãã¡ã€ã«ãžã¢ã¯ã»ã¹ããããã«FileAttachmentStorage (https://developer.ibm.com/static/site-id/155/maximodev/7609/maximocore/businessobjects/com/ibm/tivoli/maximo/oslc/provider/FileAttachmentStorage.html)ã䜿çšããŸãããã¡ãã®getAttAchment(MboRemote) ã䜿çšããã°ãã¡ã€ã«ã®ããŒã¿é
åãååŸã§ããŸãã2ã€ç®ã¯CSVãããŒã¹ããæ¹æ³ã§ããMaximoã®Jythonã¯æšæºã©ã€ãã©ãªãæäŸããŠããŸãããæšæºã©ã€ãã©ãªã䜿çšããã«ã¯å€éšã§ã©ã€ãã©ãªãä¿åããŠã¢ã¯ã»ã¹ããªããã°ãªããŸããïŒhttps://www.maximoscripting.com/using-external-libraries-in-jython/ïŒãããšã¯èªåã§å®è£
ãããJavaã©ã€ãã©ãªãå©çšãããã«ãªããŸãããpsdi.app.bim.parser.cobie.CsvInputTokenizer (https://developer.ibm.com/static/site-id/155/maximodev/7609/maximocore/businessobjects/psdi/app/bim/parser/cobie/CsvInputTokenizer.html)ãCSVã®ããŒãµãŒãšããŠå©çšã§ãããã§ããä»åã¯ãã¡ãã䜿ã£ãå®è£
ã詊ããŠã¿ãŸãã
以äžã®ããã«èµ·åãã€ã³ãã¯ãªããžã§ã¯ãã®åæåã§èšå®ããŸãã
äœæããèªååã¹ã¯ãªããã¯ä»¥äžã®éãã§ãã
from java.io import ByteArrayInputStream from com.ibm.tivoli.maximo.oslc.provider import FileAttachmentStorage from psdi.app.bim.parser.cobie import CsvInputTokenizer if onsetup: doclink = mboset.getOwner() if doclink and doclink.getString('urlname').lower().split('.')[-1] == 'csv': # AttachmentStorage can get a byte array of local file. storage = FileAttachmentStorage() buf = storage.getAttachment(doclink) # remove a record because a mbo was inserted automatically by Maximo. mboset.deleteAll() mboset.save() tokenizer = CsvInputTokenizer(ByteArrayInputStream(buf)) row = tokenizer.getRow() try: while row: row_mbo = mboset.addAtEnd() col_index = 1 for col in row[0:20]: # loop until the max column size col_name = "c%d" % col_index row_mbo.setValue(col_name, col[0:20]) # subs to ALN length col_index = col_index + 1 row = tokenizer.getRow() finally: tokenizer.close()
æåŸã«ãã€ã¢ãã°ãèšå®ããŸããã¢ããªã±ãŒã·ã§ã³ã»ãã¶ã€ããŒã®ãã·ã¹ãã èšå®ã®ãšã¯ã¹ããŒããããLIBRARY.xmlãããŠã³ããŒããä¿åããŸãã以äžã®ãã€ã¢ãã°ãæ¿å
¥ããŸãã
<dialog id="csv_preview" label="Preview" relationship="CSVPREVIEW"> <table id="csv_preview_table" inputmode="readonly" selectmode="single"> <tablebody displayrowsperpage="20" filterable="false" filterexpanded="true" id="csv_preview_tablebody" witdh="75%"> <tablecol dataattribute="c1" label="1" id="csv_preview_tablebody_col_1"/> <tablecol dataattribute="c2" label="2" id="csv_preview_tablebody_col_2"/> <tablecol dataattribute="c3" label="3" id="csv_preview_tablebody_col_3"/> <tablecol dataattribute="c4" label="4" id="csv_preview_tablebody_col_4"/> <tablecol dataattribute="c5" label="5" id="csv_preview_tablebody_col_5"/> <tablecol dataattribute="c6" label="6" id="csv_preview_tablebody_col_6"/> <tablecol dataattribute="c7" label="7" id="csv_preview_tablebody_col_7"/> <tablecol dataattribute="c8" label="8" id="csv_preview_tablebody_col_8"/> <tablecol dataattribute="c9" label="9" id="csv_preview_tablebody_col_9"/> <tablecol dataattribute="c10" label="10" id="csv_preview_tablebody_col_10"/> <tablecol dataattribute="c11" label="11" id="csv_preview_tablebody_col_11"/> <tablecol dataattribute="c12" label="12" id="csv_preview_tablebody_col_12"/> <tablecol dataattribute="c13" label="13" id="csv_preview_tablebody_col_13"/> <tablecol dataattribute="c14" label="14" id="csv_preview_tablebody_col_14"/> <tablecol dataattribute="c15" label="15" id="csv_preview_tablebody_col_15"/> <tablecol dataattribute="c16" label="16" id="csv_preview_tablebody_col_16"/> <tablecol dataattribute="c17" label="17" id="csv_preview_tablebody_col_17"/> <tablecol dataattribute="c18" label="18" id="csv_preview_tablebody_col_18"/> <tablecol dataattribute="c19" label="19" id="csv_preview_tablebody_col_19"/> <tablecol dataattribute="c20" label="20" id="csv_preview_tablebody_col_20"/> </tablebody> </table> <buttongroup id="csv_preview_buttons"> <pushbutton default="true" id="csv_preview_button_1" label="Close" mxevent="dialogclose"/> </buttongroup> </dialog>
æ·»ä»ãã¡ã€ã«ã®ãã€ã¢ãã°ãããã¬ãã¥ãŒã»ãã€ã¢ãã°ãåŒã³åºããããã«ä»¥äžã®ããã«å€æŽããŸããmxeventã«ãã€ã¢ãã°ã®IDãæå®ããŸãã
<dialog id="viewattachments" label="View Attachments" savemode="ONLOAD"> <table id="viewattachments_table" inputmode="readonly"> <tablebody id="viewattachments_tablebody"> <tablecol dataattribute="document" id="viewattachments_table_tablebody_4" label="Document" type="openurl" urlattribute="weburl"/> <tablecol dataattribute="docinfo.description" id="viewattachments_table_tablebody_6" label="Description" sortable="false"/> <tablecol dataattribute="doctype" id="viewattachments_table_tablebody_3" label="Document Folder"/> <tablecol dataattribute="docversion" id="viewattachments_table_tablebody_5" label="Document Version"/> <tablecol dataattribute="printthrulink" id="viewattachments_table_tablebody_9" label="Print"/> <tablecol dataattribute="ownertable" id="viewattachments_table_tablebody_1" label="Application"/> <tablecol filterable="false" hidden="false" id="csv_preview_viewattachments_table_tablebody_10" mxevent="csv_preview" mxevent_desc="CSV Preview" mxevent_icon="nav_icon_preview.gif" sortable="false" type="event"/> <tablecol filterable="false" hidden="false" id="viewattachments_table_tablebody_7" mxevent="linkproperties" mxevent_desc="Attachment Properties" mxevent_icon="img_information.gif" sortable="false" type="event"/> <tablecol filterable="false" hidden="false" id="viewattachments_table_tablebody_8" mxevent="instantdelete" mxevent_desc="Delete Row" mxevent_icon="btn_delete.gif" sortable="false" type="event"/> </tablebody> </table> <buttongroup id="viewattachments_2"> <pushbutton default="true" id="viewattachments_2_1" label="OK" mxevent="dialogok"/> </buttongroup> </dialog>
LIBRARY.xmlãã¢ããããŒãããŠèšå®ã¯çµããã§ãã
æ©èœã確èªããŸãã以äžã®ãµã€ããããã¹ãã»ããŒã¿ãååŸãããã¡ãã§ãã¹ãããŸãã
ãã¡ã€ã«ãã¢ããããŒãããæ·»ä»ãã¡ã€ã«ã»ãã€ã¢ãã°ã®ãã¬ãã¥ãŒãã¿ã³ãæŒããšãã¡ãã®ããã«CSVã®å
容ã確èªã§ããŸãã
æ¬èšäºã§ã¯æ·»ä»ãã¡ã€ã«ã®CSVããã€ã¢ãã°ã«ãã¬ãã¥ãŒããæ¹æ³ã解説ããŸãããå
容ãç·šéã§ããããã«ãä¿åæã«CSVãã¡ã€ã«ãæŽæ°ããããã«ãæ¹å€ã§ããŸãããExcelãã¡ã€ã«ãžã®å¯Ÿå¿ãJavaScriptã®ã«ã¹ã¿ãã€ãºã䜿ã£ãŠåã蟌ã¿ãã¬ãã¥ãŒããããšãå¯èœã§ããæ·»ä»ãã¡ã€ã«ãžã®ã¢ã¯ã»ã¹æ¹æ³ãèŠããŠæ§ã
ãªå¿çšã詊ããŠã¿ãŠãã ããã