Create a PR/PO from a Work Order *

Create a PR/PO from a Work Order *
July 28, 2019 Comments Off on Create a PR/PO from a Work Order * Blogs, Business, Maximo, News, Solutions, Work Management Amer Seifeddine

Depending on your organizational needs, Field Buyers may or may not prefer consolidating multiple Work Orders’ planned vendor materials on a single Purchase Order. When a Purchase Order is required to be generated for every Work Order (for easier tracking, accounting, matching, etc.) users may find it inefficient to use the Maximo standard direct material reorder functionality from Inventory application as they will need to navigate back and forth between modules. In this article, we are demonstrating a simple configuration that helps alleviating this inefficiency by leveraging the reorder functionality to Work Order Tracking application.

The same reorder functionality can be re-used from Work Order application by only showing planned materials related to current Work Order, tasks or parents. The system generates a PR or a PO depending on the organizational settings.

Create PO from Workorder
Create PO from Workorder

This configuration does not require an outage and is compatible with SaaS environments. Follow below steps to enable PR/PO Creation from a Work Order:

Signature Option
Signature Option
  • User Interface:  1- Using the Application Designer application, add a new signature option (REORISS) for the Work Order preferred application and enable that option on the action menu then grant users to that option from the security groups application. 2- Add the dialog xml code snippet from the Appendix A in your Work Order preferred application.
  • Table Relationship: Add the WORKORDER and REORDERPAD relationships as detailed in the Appendix B.

Important Note: The reorder standard functionality places a reorder lock every time the reorder is being previewed. Therefore, frequent use of this configuration may result in error messages preventing more than a user to preview reorder at the same instance. Advanced configuration will be required to prevent this situation. Please contact us for more details.


Appendixes:

  • A: Dialog xml file:
<dialog beanclass="psdi.webclient.beans.common.ReorderpadBean" designermboname="REORDERPAD" id="reorderpaddirect" label="Create PR/PO from WO">
		<defaultvalue dataattribute="SW_WOANCESTOR.ancestor" defaulttype="query" fromattribute="SW_WOANCESTOR.ancestor" fromdatasrc="MAINRECORD" id="topwo_defaultvalue"/>
		<table id="reorderpad_grid1_1_1_reorderpad_tabledirect" startrow="0">
			<tablebody displayrowsperpage="18" filterable="true" filterexpanded="true" id="reorderpad_grid1_1_1_reorderpad_table_tablebody1">
				<tablecol filterable="false" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_11" mxevent="toggledetailstate" mxevent_desc="Show Detail" sortable="false" type="event"/>
				<tablecol dataattribute="SW_WOANCESTOR.ancestor" filterable="true" id="1562961565253_parent" inputmode="readonly" label="Top WO" menutype="WORKORDER" sortable="true"/>
				<tablecol dataattribute="WONUM" filterable="true" id="1562961565253_wo" inputmode="readonly" label="Workorder" menutype="WORKORDER" sortable="true"/>
				<tablecol dataattribute="SW_WORKORDER.DESCRIPTION" filterable="true" id="1562961579144" inputmode="readonly" sortable="true"/>
				<tablecol dataattribute="itemnum" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_21" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_11" menutype="item"/>
				<tablecol dataattribute="descriptionview" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_31" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_21"/>
				<tablecol dataattribute="conditioncode" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_41" inputmode="readonly" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_31"/>
				<tablecol dataattribute="curbal" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_51" inputmode="readonly" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_61"/>
				<tablecol dataattribute="orderunit" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_61" inputmode="readonly" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_51"/>
				<tablecol dataattribute="unitcost" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_71" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_71"/>
				<tablecol dataattribute="reorderqty" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_81" linkedcontrolid="reorderpad_grid1_1_1_reorderpad_table_1_grid3_41"/>
				<tablecol filterable="false" id="reorderpad_grid1_1_1_reorderpad_table_tablebody_91" mxevent="toggledeleterow" mxevent_desc="Mark Row for Delete" mxevent_icon="btn_garbage.gif" sortable="false" type="event"/>
			</tablebody>
			<tabledetails id="reorderpad_grid1_1_1_reorderpad_table_11">
				<section border="true" id="reorderpad_grid1_1_1_reorderpad_table_1_grid31">
					<sectionrow id="1563113006397">
						<sectioncol id="1563113024962">
							<multiparttextbox dataattribute="SW_WOANCESTOR.ancestor" descdataattribute="SW_TOPWO.DESCRIPTION" descinputmode="readonly" id="1563113054168" inputmode="readonly" label="Top Workorder" menutype="WORKORDER"/>
						</sectioncol>
						<sectioncol id="1563113020243">
							<multiparttextbox dataattribute="wonum" descinputmode="readonly" id="1563114020428" inputmode="readonly" menutype="workorder"/>
						</sectioncol>
						<sectioncol id="15631130063972">
							<multiparttextbox dataattribute="itemnum" descdataattribute="descriptionview" descinputmode="readonly" id="1563113194669" inputmode="readonly" lookup="item" menutype="item"/>
						</sectioncol>
					</sectionrow>
					<sectionrow id="1563114083573">
						<sectioncol id="1563114100964"/>
						<sectioncol id="1563114096558"/>
						<sectioncol id="1563114091636"/>
						<sectioncol id="1563114083588"/>
					</sectionrow>
				</section>
			</tabledetails>
		</table>
		<buttongroup id="reorderpad_grid1_1_1_grid111">
			<pushbutton default="true" id="reorderpad_grid1_1_1_grid11_11" label="Create PR/PO for WO" mxevent="reorderresultsdirect"/>
			<pushbutton id="reorderpad_grid1_1_1_grid11_31" label="Cancel" mxevent="dialogcancel"/>
		</buttongroup>
	</dialog>
	
	
	<dialog beanclass="psdi.webclient.beans.common.ReorderBean" id="reoriss" label="Create PR/PO for WO" relationship="INVENTORY.REORDERITEMS">
		<defaultvalue dataattribute="async" id="async_reorder" value="0"/>
		<defaultvalue dataattribute="siteid" defaulttype="query" fromattribute="siteid" fromdatasrc="MAINRECORD" id="siteid_defaultvalue"/>
		<section collapsed="true" id="reorderdirect_grid0">
			<textbox dataattribute="siteid" id="reorderdirect_grid0_2" lookup="site" title="Reorder Site"/>
		</section>
		<section collapsed="true" id="reorderdirect_grid1" label="PR/PO Details" titlealign="center">
			<checkbox dataattribute="agreementpo" id="reorderdirect_grid1_1"/>
			<textbox dataattribute="leadtime" id="reorderdirect_grid1_2" title="Allowance for Extra Lead Time In Days"/>
		</section>
		<section collapsed="true" id="reorderdirect_grid2" label="Reorder Runtime Option" titlealign="center">
			<checkbox dataattribute="async" id="reorderdirect_grid2_1_1_1"/>
		</section>
		<buttongroup id="reorderdirect_2">
			<pushbutton default="true" id="reorderdirect_2_1" label="Preview PR/PO Lines" mxevent="reorderpaddirect"/>
			<pushbutton id="reorderdirect_2_3" label="Cancel" mxevent="dialogcancel"/>
		</buttongroup>
	</dialog>

	<dialog beanclass="psdi.webclient.beans.common.ReorderResultBean" designermboname="INVENTORY.REORDERITEMS" id="reorderresultsitem" inputmode="readonly" label="Reorder Results">
		<section id="reorderresults_grid1_1_1_grid2">
			<textbox dataattribute="totalnum" id="reorderresults_grid1_1_1_grid2_1" title="Number of Items Reordered"/>
			<textbox dataattribute="startprnum" id="reorderresults_grid1_1_1_grid2_2" title="Starting PR Number"/>
			<textbox dataattribute="endprnum" id="reorderresults_grid1_1_1_grid2_3" title="Ending PR Number"/>
			<textbox dataattribute="startponum" id="reorderresults_grid1_1_1_grid2_4" title="Starting PO Number"/>
			<textbox dataattribute="endponum" id="reorderresults_grid1_1_1_grid2_5" title="Ending PO Number"/>
		</section>
		<buttongroup id="reorderresults_21">
			<pushbutton default="true" id="reorderresults_2_11" label="OK" mxevent="dialogcancel"/>
		</buttongroup>
	</dialog>
  • B- Relationships:
1- REORDERITEMS on WORKORDER Object : exists (select 1 from locations l where l.location=reorderitems.storeloc and l.type ='STOREROOM')
2- SW_WOANCESTOR on REORDERPAD Object: wonum=:wonum and siteid=:siteid and hierarchylevels = (select max(hierarchylevels) from woancestor a where a.wonum=:wonum and a.siteid=:siteid)
3- SW_WORKORDER on REORDERPAD Object: wonum=:wonum and siteid=:siteid
  • C- License: Unrestricted for Maximo end-users only. Restricted for solution providers (Please contact us for more information).

* Licensing may apply


Our approach is to keep things simple and keep you informed of all available options. Contact us for more details!

Tags
About The Author