2017-08-23 6 views
0

ich eine einfache Anpassung erstellt eine Zeichenfolge UDF auf den AR-Rechnungen und Memos Bildschirm, AR.30.10.00 hinzuzufügen. Ich machte es erforderlich, indem ich das Attribut [PXDefault] hinzufügte.Pflichtfeld auf AR Rechnung und Memos verursacht Fehler, wenn AR Zahlung Eingabe

Wenn ich nun in AR Payments and Applications, AR.30.20.00, Geldeingänge eingeben und das Geld nicht auf eine Rechnung anwenden, gibt das System einen Fehler aus, der besagt, dass die UDF erforderlich ist. Es gibt keinen Platz für die Eingabe der UDF auf dem Bildschirm Zahlungen. Die UDF bezieht sich auf die Rechnung, nicht auf die Zahlung.

Warum wirft das System diesen Fehler? Gibt es eine Arbeit?

Antwort

1

Die PXDefault Attribut überprüft auch, dass der Feldwert nicht null ist in die Datenbank vor dem Speichern. Sie können dieses Verhalten mithilfe der PersistingCheck-Eigenschaft anpassen. Ihr Wert gibt an, ob das Attribut prüfen soll, ob der Wert nicht null ist, ob der Wert nicht null oder eine leere Zeichenfolge ist oder nicht.

[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)] 

Referenz: PXDefault Attribute

Die DAC Sie wahrscheinlich in beiden Bildschirmen verwenden erweitert wird, so dass Sie den persistierende Scheck oder Sollwert einer Standard ändern sollten.

Sie können Ihr benutzerdefiniertes Feld auf bestimmte Graph außer Kraft setzen, wenn Sie/wollen nicht wollen, dass das Verhalten CacheAttached Ereignis mit:

[PXMergeAttributes(Method = MergeMethod.Merge)] 
[PXDefault(PersistingCheck = PXPersistingCheck.Nothing)] 
protected virtual void ARTran_UDF_CacheAttached(PXCache sender) 
{ 
} 

Ohne einen expliziten Standardwert, Felder null sein werden und Fehler auslösen Überprüfung persistierenden . Um einen nicht null Standardwert für ein String-Feld gesetzt:

[PXDefault("")] 
+0

Ich glaube, cbetabeta identifiziert Ihr Problem in seiner Antwort korrekt. –

2

Es scheint, dass Ihr Custom zur ARRegister DAC hinzugefügt wurde (Erweiterung) anstelle der ARInvoice DAC (Erweiterung). ARInvoice und ARPayment beide erben von ARRegister, also wenn Sie das Custom Field (erforderlich) ARRegister DAC (Erweiterung) hinzugefügt, dann wird es für beide erforderlich.

Wenn Sie das Feld über den Bereich Datenzugriff im Anpassungsprojekt hinzugefügt haben, denke ich, dass es zur ARRegister-DAC-Erweiterung hinzugefügt wird. Klicken Sie im Customization Tool auf Code Abschnitt, klicken Sie auf Plus-Symbol (Hinzufügen), wählen DAC-Erweiterung auf Dateivorlage, Namen hinzufügen und klicken Sie auf OK. Dies wird eine Dac Erweiterungsdatei erstellen, die Sie und ARInvoice verwenden manipulieren könnte anstelle des ARRegister.

enter image description here

Dann, nach dem Speichern der Datei, müssen Sie File-> Edit Projektelemente auf Menü.

enter image description here

Es müssen Sie klicken Sie auf den Netzbereich nach rechts, wählen Sie Add-> Datenbank Tabellenfeld:

enter image description here

Sie anschließend die gewünschte DAC (ARInvoice) in Ihrem Fall wählen, mit dem Feldnamen und -typ (übereinstimmender Feldname und Typ, der in der DAC-Erweiterungsdatei verwendet wird). Bitte beachten Sie, dass Sie nicht müssen "Usr" zu dem Feld hinzufügen, das wird automatisch vom Tool hinzugefügt.

enter image description here

Klicken Sie auf OK, speichern und veröffentlichen, so das Feld nun auf dem Bildschirm Abschnitt zugänglich sein kann.