IBM Support

Notify Users of Material and Service Receipts

Technical Blog Post


Abstract

Notify Users of Material and Service Receipts

Body

One of my recurring issues has been notifying uses of receipts in an email, without a separate email for each receipt record.   To that end, I’ve created a process that uses an escalation to fire a custom action to do this.  This is built on Maximo 7.5.0.10 on SQL Server. 

 

Note: The way this is built, it only works for POs where all lines are requested by the same user.  You’re smart, I’m sure you can figure out options if you need to.

 

Create a persistent attribute PO.LASTRECDATE (DATETIME 10).

  • If you wish, add it to the PO List and Main tabs.  My users seem to like it there.
  • Don’t forget to turn Admin Mode off.
    • Yes….I still forget sometimes.

                     

 

Create a new Role POREQ

  • Type: Data Related to the Record
  • Object: PO
  • Value: :poline.requestedby

 

Create a new Communication Template PORECEIPT

  • Applies To: PO
  • Subject and Message can be anything, they will be driven by the custom action
  • Add the POREQ role as a recipient.
  • Don’t forget to activate the template.
    • See above about Admin Mode.

 

Create a Custom Launchpoint PORECCOMM.

  • Object: PO
  • Action: PORECCOMM
  • Bound Variables: None
  • Source: see poreccomm.py at this link.

 

Create a new Action Group PORECESC.

  • Object: PO
  • Type: Action Group
  • Members: PORECCOMM

 

If you wish, you can create new views on the DB outside of Maximo.

  • V_PORECEIPTS
    • Can be used to update all PO records.
    • Can also be used to feed view V_MX_PORECEIPTS.
  • V_MX_PORECEIPTS (extra credit)
    • Can be used as an imported Maximo object, combining MATREC and SERVREC by PO.
  • The SQL is buried at the end of poreccomm.py

Create new Escalation PORECESC.

  • Applies To: PO
  • Condition: po.historyflag = 0

AND po.receipts <> 'NONE'

AND (exists (SELECT 1 FROM matrectrans mr WHERE mr.ponum = po.ponum AND mr.receiptref is NULL AND mr.issuetype = 'RECEIPT' AND mr.transdate >isnull(po.ns_lastrecdate,po.orderdate))

OR exists (SELECT 1 FROM servrectrans sr WHERE sr.ponum = po.ponum AND sr.receiptref is NULL AND sr.issuetype = 'RECEIPT' AND sr.transdate >isnull(po.ns_lastrecdate,po.orderdate)))

  • Escalation Point: repeats
  • Action Group: PORECESC
  • Don’t forget to activate it  (See above).

This entire document is available at the Automation Scripting DW Community as well.

 

 

 

 

 

 

 

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

UID

ibm11130697