Ich habe eine Anpassung, bei der ich einige Code (ein Web-Service-Aufruf) nach der Freigabe einer Rechnung ausführen möchte. Von der Ausbildung, in meiner Graph Erweiterung, ich genutzt und verändern das Beispiel wie folgt, wobei die CreateAPBills
Methode ist die Methode, die ich auf der Release-Aktion ausgeführt werden soll (letztlich das RowPersisted Ereignis):Laufender Code auf Release Aktion von Rechnung und Memo Bildschirm
public class ARInvoiceEntryExt : PXGraphExtension<ARInvoiceEntry>
{
public PXAction<ARInvoice> release;
[PXUIField(DisplayName = "Release", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Update)]
[PXProcessButton]
public IEnumerable Release(PXAdapter adapter)
{
PXGraph.InstanceCreated.AddHandler<ARInvoiceEntry>((graph) =>
{
graph.RowPersisted.AddHandler<ARInvoice>((cache, args) =>
{
if (args.TranStatus == PXTranStatus.Completed)
{
CreateAPBill(cache);
}
});
});
return Base.release.Press(adapter);
}
Leider ist dies scheint nicht zu funktionieren. Was vermisse ich?
Nachdem ich mit jemand anderem darüber gesprochen habe - ich brauche das nicht unbedingt beim RowPersisted-Event - da das Release ohne unbedingt speichern passieren kann, richtig? Mit anderen Worten, ich muss meinen Code bei der Release-Aktion initiieren. Muss ich noch einen Event-Handler dafür hinzufügen? – pmfith