IBM Support

PERSON.DISPLAYNAME in Work Log Tab for workorders

Technical Blog Post


PERSON.DISPLAYNAME in Work Log Tab for workorders


Imagine that you recently upgraded to Maximo 7.6 and then you are trying to add a new table column in the Work Order Tracking app.


You can find instructions in this article :

Configuring the "Log" tab (Can a field be added to the Work Log tab in Work Order Tracking?) 


But then you want more....  you wonder about "What would the code be if I wanted the display the employee name of the person who created the 
record?"   IMPORTANT :  The display name is in the person table  (person.displayname).


The steps below should help you to update the library.xml for the work log section to add the person.display name to the list and the body of the screen.

Steps suggested :
1) Go to Database Configuration - find WORKLOG object.  Click on the Relationships Tab of the WORKLOG object - click on New Row - Relationship = PERSON - Where clause = personid = :createby, Child Object = PERSON. 
2) Click on Save 
3) Go to Application Designer - Click on Select Action - Export System XML - Save LIBRARY.XML to your desktop.  Create a backup of your Library.xml.  Please reference the following entries - Notice the PERSON.DISPLAYNAME.  There will be 2 entries.  1 for the "List" on the worklog and 1 for the body when the arrow is expanded. The following 2 lines need to be added: 
<tablecol dataattribute="PERSON.DISPLAYNAME" id="worklog_tb4a" sortable="true" inputmode="readonly"/> 
<textbox dataattribute="PERSON.DISPLAYNAME" id="worklog_tb_details_sec13a" inputmode="readonly"/> 
Below is the reference to exactly where they are added: 
<tablecol dataattribute="class" id="worklog_tb3" sortable="true"/> 
<tablecol dataattribute="ticket.isglobal" id="worklog_tb3a" sigoption="SHOWGLOBAL" sigoptiondatasrc="MAINRECORD" sortable="false"/> 
<tablecol dataattribute="createby" id="worklog_tb4" sortable="true"/> 
<tablecol dataattribute="PERSON.DISPLAYNAME" id="worklog_tb4a" sortable="true" inputmode="readonly"/> 
<tablecol dataattribute="createdate" id="worklog_tb5" sortable="true"/> 
<tablecol dataattribute="logtype" id="worklog_tb6" linkedcontrolid="worklog_tb_details_sec17" sortable="true"/> 
<tablecol dataattribute="description" id="worklog_tb7" sortable="true"/>
<tablecol dataattribute="clientviewable" id="worklog_tb8" sortable="true"/> 
<tabledetails id="worklog_tb_details"> 
<section id="worklog_tb_details_sec1" label="Details"> 
<sectionrow id="worklog_tb_details_row1"> 
<sectioncol id="worklog_tb_details_row1_col1"> 
<section id="worklog_tb_details_row1_col1_1"> 
<textbox dataattribute="recordkey" id="worklog_tb_details_sec11" menutype="hyperlink"/> 
<textbox dataattribute="class" id="worklog_tb_details_sec12"/> 
<checkbox dataattribute="ticket.isglobal" id="worklog_tb_details_sec12a" sigoption="SHOWGLOBAL" sigoptiondatasrc="MAINRECORD"/> 
<textbox dataattribute="createby" id="worklog_tb_details_sec13"/> 
<textbox dataattribute="PERSON.DISPLAYNAME" id="worklog_tb_details_sec13a" inputmode="readonly"/> 
<textbox dataattribute="createdate" displaytype="DATETIME" id="worklog_tb_details_sec16"/> 
<textbox dataattribute="logtype" id="worklog_tb_details_sec17" lookup="valuelist"/> 
<checkbox dataattribute="clientviewable" id="worklog_tb_details_sec18"/>
4)  Go to Application Designer - Import the modified LIBRARY.XML back into Application Designer.  Ensure that the XML was uploaded.  Sign out of Maximo.  Shutdown the Application.  Start The Application Server. Sign Into Maximo. 
5) Go to an existing Workorder or create a new Workorder.  Click on the Log tab.  Click on New Row.  The Name field will be populated with the Display Name. 

After that :
1) Go to database Configuration - access the WORKORDER object.  Create 2 new attributes called DISPLAYNAME and DISPLAYNAME1 - ALN type - length of 62. 
2) Go to Domains application.  Create 2 new crossover domains with the following information: 
- 1 - Crossover = Displayname - object = PERSON - validation clause = personid = :reportedby - Source = DISPLAYNAME - Destination = DISPLAYNAME 
- 2 - Crossover Displayname1 - object = PERSON - validation clause = personid = :changeby - Source = DISPLAYNAME - Destination = DISPLAYNAME1
3) Go back to the database configuration application - access WORKORDER object - Apply Domain DISPLAYNAME to the WORKORDER.REPORTEDBY, Apply Domain DISPLAYNAME1 to WORKORDER.CHANGEBY 
4) Turn on Admin Mode - Apply Configuration Changes - Turn off admin mode 
5) Go to Application Desinger - access WOTRACK application - add 2 new fields to the Workorder screen - 1 = DISPLAYNAME under Reported By - DISPLAYNAME1 under Modified By. 
6) Sign in as a user - create a new WO - noticed REPORTEDBY and CHANGEBY are the same.  Save. Sign in as another user - go to the same Workorder record - change the status.  The CHANGEBY field and DISPLAYNAME1 will change. 


See ya

[{"Business Unit":{"code":"BU005","label":"IoT"}, "Product":{"code":"SSLKT6","label":"Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]