Add Create,- Update,- Destroy-Action by wpErpOs_handleFieldDataQueue_afterForeachHook

Um Daten aus einem View in einen anderen zu kopieren während dem Speichern wird ein Hook zur Verfügung gestellt.
Normalerweis muss im Bereich Custom-Actions ein Hook manuell programmiert werden. Für diesen einen Case, haben wir einen Automatismus erstellt, der den Hook-Code selber generiert und hinterlegt.

Regeln

Bsp. für diesen Automatismus: Wenn in dem View Bestellung/Order eine Bestellung erfasst, editiert oder gelöscht wird, so soll diese Bestellung während dem speichern in das dataSchema/View Rechnung/Report kopiert werden.

Regel 1. Das Feld ID/postID in der Spalte “copy from Feld” muss für jeden Ziel-View in ein Feld kopiert werden. Dieses Feld darf in der Spalte “copy to Field” nicht das ID/postID Feld sein. Dieser Vorgang stellt den Primärschlüssel dar.

Regel 2. Jeder Ziel-View muss einen “copy to Feld” Eintrag aufweisen der etwas in den post_title schreibt. Dies ist nötig, da WordPress einen Titel für einen Eintrag verlangt.

Regel 3: Relation-Felder können in zwei Modes kopiert werden:
1:1 => Die Daten werden 1:1 in das Ziel-Feld kopiert
1:n => Die Daten der Relation werden in eine Zeile pro Relation Eintrag kopiert. So entstehen n Einträge pro Relation. Es können auch mehrere Relations mit 1:n kopiert werden.
Es werden die Felder welche in der von Relation angegebenen Tabelle aufgeführt werden in den Ziel-View kopiert.
In das angegebene Feld copy to Field in der Relation wird die ID der Relation kopiert. Daher muss dieses Feld vom typ post/post_meta/post_meta_as_relation sein. Dieser wert stellt den Primärschlüssel für die Relation dar.

Praxis Beispiel

Add Create,- Update,- Destroy-Action Tabelle

Der Kopiervorgang schematisch dargestellt

Die Bestellung/Order hat zwei Services hinterlegt. Da orders_sevice_relation ein 1:n Kopiervorgang ist, werden zwei Einträge beim kopieren hinterlegt in der Tabelle Rechnungen/Report. Um den Service in der Report-Tabelle eindeutig einem Service zuordnen zu können, wird die postID des Service in der service_id hinterlegt.
Um die Order in dem Report eindeutig zuordnen zu können wird die postID der Order im Report unter order_id eindeutig hinterlegt.
Da der Status in der Kopieranweisung als Konst. hinterlegt ist wird nicht der Wert von Status in Order, sondern der vorgegebene Wert Konst. = 1 in Report hinterlegt.

Kopierfunktionen Hinweise

  1. Felder vom DatenTyp post_meta_dynamic können in andere post_meta oder post Felder kopiert werden welche als String hinterlegt werden.
    Es ist aber nicht möglich ein Feld mit einem String oder ähnlichen Feld in ein post_meta_dynamic Feld zu kopieren.
    Es ist möglich ein post_meta_dynamic in ein post_meta_dynamic Feld zu kopieren

Weitere Infos zu diesem Thema:
Tags: add-create-update-destroy-action

Schreiben Sie einen Kommentar