2017-01-09 2 views
1

Wir haben eine Integration wo PO in einer externen Anwendung erstellt wird und dann eine Schnittstelle zu Maximo wird. POs, die nur genehmigt werden, werden in Maximo eingehen, jedoch erlaubt Maximo das Hinzufügen von POLINES im APPR-Status nicht, sodass wir über die Integration die Bestellung im WAPPR-Status erhalten. Wir müssen die Bestellung sofort freigeben, damit alle nachfolgenden Bestellungsaktualisierungen/Belegtransaktionen an Maximo weitergeleitet werden. Ich bin mir bewusst, dass eine Eskalation die Aufgabe der Genehmigung von Bestellungen erledigen kann, aber ich möchte, dass die Statusänderung sofort erfolgt.Maximo 7.6 APPR Bestellungen über Integration

Ich habe folgende Optionen versucht 1) Erstellen Sie einen Workflow, um Bestellung zu genehmigen und setzen Sie es auf automatisch zu initiieren. Dies funktioniert nicht als Workflow einstellen Auto-initiieren doesnt für Objekte ausgelöst werden durch

Integration erstellt

2) Versuchte Automatisierungsskript Einrichten Workflow

from psdi.mbo import MboConstants 
from psdi.server import MXServer 
print("**************Script to Approve Inbound POs *******"); 
stat=mbo.getString("STATUS") 
if (stat != ''): 
    print (" Status is not null "); 
    print (stat); 
    if (stat=='WAPPR'): 
    print ("Status is WAPPR"); 
    MXServer.getMXServer().lookup("WORKFLOW").initiateWorkflow("[my WF]",mbo); 
    print(" Workflow has been initiated and PO will be approved"); 

meine WF eine Aktion enthält, einzuleiten, das zum Status ändern führt Setze den Status als APPR. Dies erzeugt einen Eintrag in der POSTATUS Tabelle jedoch neuer Status als WAPPR liest statt APPR

3) Automation Skript Wert für Status Dieser

from psdi.mbo import MboConstants 
from psdi.server import MXServer 
print("**************Script to Approve POs Inbound *******"); 
stat=mbo.getString("STATUS") 
if (stat != ''): 
    print (" Status is not null "); 
    print (stat); 
    if (stat=='WAPPR'): 
    print ("Status is WAPPR"); 
    mbo.setValue("STATUS","APPR",MboConstants.NOVALIDATION); 
    print(" Status approved"); 

eingestellt wurde mit Objektstartpunkt einrichten, Objekt als PO und bei Speichern, Nach dem Commit.

Dies funktioniert auch.

Bitte lassen Sie mich wissen, ob es irgendwelche anderen Optionen

Antwort

0

Nicht sicher, wenn Sie Workflow auslösenden Skript arbeitet oder wenn es gebraucht wird.

Das Problem ist die Analyse des Änderungsstatus. Da ein neuer Bestelldatensatz angelegt wird, gibt es auch einen neuen Status 'ändern', der die Änderung von 'nichts' in den ersten Status für die Bestellung, 'WAPPR', darstellt. Für Bestellungen gibt es keinen 'NEU' Status. Der Datensatz, den Sie in der POSTATUS-Tabelle sehen, stammt also nicht von Ihrem Skript, sondern von der Erstellungsaktion der Schnittstelle.

Für Statusänderungen sollten Sie die Standardanwendungsaktion verwenden. Dies ändert den Status des Datensatzes UND erzeugt einen Eintrag in der korrekten Statustabelle (in diesem Fall POSTATUS). Gehen Sie zu> Systemkonfiguration> Plattformkonfiguration> Aktionen. Erstellen Sie eine neue Aktion. Setzen Sie das Objekt auf Bestellung, geben Sie 'Status ändern' und den Wert 'APPR' ein. Verwenden Sie diese Aktion in Ihrem Workflow. Oder direkt in der Eskalation. Mach dir keine Sorgen über Eskalationen, die alle 5 Minuten laufen. Sie können sogar einen neuen Status 'NEW' als Synonym für 'WAPPR' verwenden, um zwischen normalen und den direkt verknüpften Datensätzen zu unterscheiden. Auf diese Weise können Sie sie auch in der PO-Anwendung vor Ihren Benutzern verbergen.

Hoffe, dass hilft.

+0

Der Workflow, der einen Eintrag in POSTATUS erstellt, basiert auf einer Aktion, die ich aus dem Workflow triggere. Ich versuche tatsächlich, einen Weg zu finden, wie PO in unser System mit dem Status APPR geladen wird und nicht durch eine Eskalation, die später ausgeführt wird, in den Genehmigungsstatus versetzt wird – stackuser11