{"id":37430,"date":"2024-10-01T13:12:31","date_gmt":"2024-10-01T11:12:31","guid":{"rendered":"https:\/\/www.blue.works\/?p=37430"},"modified":"2025-10-22T15:12:27","modified_gmt":"2025-10-22T13:12:27","slug":"alm-kaffeekraenzchen-vii-charm-fb-defect-correction","status":"publish","type":"post","link":"https:\/\/www.blue.works\/de\/alm-kaffeekraenzchen-vii-charm-fb-defect-correction\/","title":{"rendered":"ALM Kaffeekr\u00e4nzchen VII: ChaRM &amp; Focused Build Defect Correction (S1TM)"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">\u00abDer Mensch ist ein Gewohnheitstier\u00bb,<\/h1>\n\n\n\n<p>wusste schon Gustav Freytag&nbsp;. Wenn wir aufstehen, erwarten wir die Pantoffeln immer an derselben Stelle neben dem Bett, damit wir sie, ohne hinzuschauen anziehen k\u00f6nnen. Gross ist die Verwirrung, wenn der Fuss pl\u00f6tzlich in der Leere tappt. Zuerst \u00e4rgerlich, dann der Panik verfallend, suchen wir barfuss die Pantoffeln, um schliesslich die Ursache f\u00fcr ihr Verschwinden zu entdecken: Der Hund hat sie entf\u00fchrt und knabbert jetzt gen\u00fcsslich daran.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dies ist ein Blog, keine Doku!<\/h2>\n\n\n\n<p>Und genau dies passiert immer wieder mit der Focused Build \u00abDefect Correction\u00bb (DC) S1TM. Pl\u00f6tzlich sind die gewohnten Aktionen verschwunden. In Panik rennt der Entwickler oder die Entwicklerin quasi barfuss zum Focused Build und ChaRM Experten, und fragt vorwurfsvoll, was diesmal schon wieder kaputt gegangen ist. Warum kann man nicht die Defect Correction wie bisher auf \u00ab<em>Erfolgreich getestet<\/em>\u00bb setzen? Warum wird man in der Arbeit behindert?<\/p>\n\n\n\n<p>Aber in Wirklichkeit ist das Fehlen der Aktionen kein Bug, sondern ein Feature. Dieses Verhalten ist sogar <a href=\"https:\/\/help.sap.com\/docs\/Focused_Build_Focused_Insights\/53cb8e90c8504f31bb44d4f0029b4b98\/e3c7394ce4664765b1af6ea0d0e29427.html?locale=en-US\">dokumentiert<\/a>.<\/p>\n\n\n\n<p>Nun ja, jedes Mal, wenn ein Entwickler Doku liest, wird ein Baum im Amazonas gerettet \u2013 hier kann man die H\u00e4ufigkeit dieses Ph\u00e4nomens erahnen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"512\" height=\"341\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic02.jpg\" alt=\"\" class=\"wp-image-37433\" style=\"width:838px;height:auto\"\/><\/figure>\n\n\n\n<p><em>Ibama from Brasil, <\/em><a href=\"https:\/\/creativecommons.org\/licenses\/by\/2.0\"><em>CC BY 2.0, via Wikimedia Commons<\/em><\/a><\/p>\n\n\n\n<p>Da diese Panikszene ziemlich oft vorkommt, m\u00f6chte ich mit diesem Blog etwas zur Aufkl\u00e4rung des Sachverhalts beitragen. Da ein Blog keine Doku ist, wird er auch von Entwicklern gelesen werden! Oder?<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Einakter \u00abTesten ist nicht immer gleich Testen\u00bb<\/h1>\n\n\n\n<p>Der Einfachheit halber zeigen wir das Schema eines Wasserfall-Projekts. W\u00e4hrend das Release in der Phase \u00ab<em>Prepare\u00bb<\/em> ist, wird auf Work Package (WP) Ebene im Konsolidierungssystem (QA) getestet. Dies sind die Single Functional Tests (SFT &#8211; gem\u00e4ss der Focused Build Methodology testen die Entwickler selbst die erw\u00fcnschte Funktionalit\u00e4t) und die Acceptance Tests (AT).<\/p>\n\n\n\n<p>Legt das Release Management den grossen Schalter um (<em>Handover to Release<\/em>), wird das gesamte Release in das Preproduction-System weitergeschoben. Hier erfolgen jetzt die grossen Integrations- und Regressionstests (FIT und RT) durch Business-User. Denn es soll dem Business bewiesen werden, dass das n\u00e4chste Release in sich konsistent und korrekt ist, und dass das Release keine bereits vorhandene Funktionalit\u00e4t kaputtmacht.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1758\" height=\"825\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic03.png\" alt=\"\" class=\"wp-image-37435\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic03.png 1758w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic03-1024x481.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic03-768x360.png 768w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic03-1536x721.png 1536w\" sizes=\"(max-width: 1758px) 100vw, 1758px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Szene I: Der gewohnte Gang<\/h2>\n\n\n\n<p>Das Projekt befindet sich in der langen Realisierungsphase, das Release ist monatelang im Status \u00ab<em>Prepare\u00bb<\/em>, die Entwicklung arbeitet fleissig an der Implementierung der Requirements.<\/p>\n\n\n\n<p>Die Work Items (WI) eines Work Packages sind einzeln getestet worden und f\u00fcr korrekt befunden. Nun wird das Work Package selbst getestet (Single Functional Test, Acceptance Test).<\/p>\n\n\n\n<p>Der Test der Work Packages erfolgt im QA-System. Findet man jetzt einen Fehler, der eine Korrektur ben\u00f6tigt, kann man dem WI keinen weiteren Transport hinzuf\u00fcgen, denn aus dem Status \u00ab<em>Successfully Tested\u00bb<\/em> kommt das WI nicht mehr zur\u00fcck.<\/p>\n\n\n\n<p>Nein, man muss aus dem WP heraus eine Defect Correction (DC) anlegen, um einen Transport f\u00fcr die Korrektur zu erhalten. Dabei wechselt das WP in den Status \u00ab<em>In Repair<\/em>\u00bb.<\/p>\n\n\n\n<p>Seit Monaten konnte man innerhalb der DC entscheiden, ob der Fehler beseitigt wurde oder ob er immer noch vorhanden ist, indem man routiniert die entsprechende Aktion aus dem \u00ab<em>Action<\/em>\u00bb Button ausw\u00e4hlte.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1367\" height=\"1217\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic04.png\" alt=\"\" class=\"wp-image-37439\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic04.png 1367w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic04-1024x912.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic04-768x684.png 768w\" sizes=\"(max-width: 1367px) 100vw, 1367px\" \/><\/figure>\n\n\n\n<p>Wird die Korrektur best\u00e4tigt, so kehrt das WP automatisch in den Status \u00ab<em>To Be Tested<\/em>\u00bb zur\u00fcck &#8211; hoffentlich zum letzten Mal.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1797\" height=\"930\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic05.png\" alt=\"\" class=\"wp-image-37441\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic05.png 1797w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic05-1024x530.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic05-768x397.png 768w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic05-1536x795.png 1536w\" sizes=\"(max-width: 1797px) 100vw, 1797px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Szene II: Huch, wo sind meine Pantoffeln \u2013 \u00e4h &#8211; Aktionen?<\/h2>\n\n\n\n<p>Endlich erreicht das Release den wichtigen Meilenstein des Endes der Entwicklung, das Release Management setzt das Release in den Status \u00ab<em>Test<\/em>\u00bb. Das Test-Management tritt ins Rampenlicht und startet die vorbereiteten Testpl\u00e4ne, deren Testpakete die zugeordneten Business ExpertInnen, Key User, TesterInnen abarbeiten.<\/p>\n\n\n\n<p>Wenn diese einen Fehler entdecken, so m\u00fcssen sie direkt aus dem Testschritt heraus einen Focused Build Defect (S1DM) anlegen. Entscheidet die Entwicklung w\u00e4hrend der Bearbeitung des Defects, dass eine Korrektur notwendig ist, um den Fehler zu beheben, so legt sie aus dem Defect heraus die bekannte Defect Correction an, die wie bisher neue und \u00e4nderbare Transporte f\u00fcr die Korrekturen anbietet.<\/p>\n\n\n\n<p>Steht die Defect Correction zum Testen an, so wandert automatisch die Hand zum \u00ab<em>Action<\/em>\u00bb Button, um die Testentscheidung auszuf\u00fchren, doch &#8211; Schreck lass nach! &#8211; der \u00ab<em>Action<\/em>\u00bb Button ist pl\u00f6tzlich leer! Die Defect Correction zeigt uns pl\u00f6tzlich die kalte Schulter, obwohl der Status derselbe wie immer ist.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1361\" height=\"1224\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic06.png\" alt=\"\" class=\"wp-image-37443\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic06.png 1361w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic06-1024x921.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic06-768x691.png 768w\" sizes=\"(max-width: 1361px) 100vw, 1361px\" \/><\/figure>\n\n\n\n<p>H\u00e4tten wir die anfangs referenzierte Dokumentation gelesen (aber echte EntwicklerInnen lesen keine Doku!), so w\u00fcssten wir, nach etwas Bl\u00e4ttern, dass:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1473\" height=\"367\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic07.png\" alt=\"\" class=\"wp-image-37445\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic07.png 1473w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic07-1024x255.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic07-768x191.png 768w\" sizes=\"(max-width: 1473px) 100vw, 1473px\" \/><\/figure>\n\n\n\n<p>Es heisst, der Tester oder die Testerin muss nicht die Defect Correction, sondern den vorgelagerten Defect best\u00e4tigen, nur so wird die Defect Correction automatisch aus ihrem Status \u00ab<em>Transport to Retesting<\/em>\u00bb befreit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1815\" height=\"937\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic08.png\" alt=\"\" class=\"wp-image-37447\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic08.png 1815w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic08-1024x529.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic08-768x396.png 768w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic08-1536x793.png 1536w\" sizes=\"(max-width: 1815px) 100vw, 1815px\" \/><\/figure>\n\n\n\n<p>Dieses abweichende Verhalten der Defect Correction S1TM, wenn sie aus einem Testschritt heraus \u00fcber einen Defect erzeugt wurde, muss beim Start der Testphase Teil des Trainings sein. So vermeidet man unn\u00f6tige Aufregung.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Backstage<\/h1>\n\n\n\n<p>Da dies ein technischer Blog ist, will ich kurz zeigen, woher dieses schillernde Verhalten der Defect Correction herr\u00fchrt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PPF-Aktion mit Bedingungen<\/h2>\n\n\n\n<p>Status-Wechsel werden im ChaRM (und Focused Build ist ein ChaRM mit Korsett und R\u00fcschen) per <a href=\"https:\/\/help.sap.com\/docs\/SAP_NETWEAVER_750\/76bbc1db07d74a32aa9041ad9b841185\/4d37a324102b1c86e10000000a42189b.html\">PPF-Aktionen<\/a> (Post Processing Framework) durchgef\u00fchrt.<\/p>\n\n\n\n<p>Schauen wir uns mal in Transaktion <strong>CRMC_ACTION_DEF<\/strong> \u00ab<em>Aktionsprofil Definieren<\/em>\u00bb eine der zwei Aktionen an, die beim Testen einer DC angeboten werden, zum Beispiel die PPF-Aktion \u00ab<em>Confirm Defect Correction with Transport<\/em>\u00bb:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1158\" height=\"876\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic09.png\" alt=\"\" class=\"wp-image-37449\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic09.png 1158w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic09-1024x775.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic09-768x581.png 768w\" sizes=\"(max-width: 1158px) 100vw, 1158px\" \/><\/figure>\n\n\n\n<p>Diese Aktion setzt bei Ausf\u00fchrung den Status <strong>S1TMHEAD E0012<\/strong> \u00ab<em>Confirmed<\/em>\u00bb:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1283\" height=\"623\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic10.png\" alt=\"\" class=\"wp-image-37455\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic10.png 1283w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic10-1024x497.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic10-768x373.png 768w\" sizes=\"(max-width: 1283px) 100vw, 1283px\" \/><\/figure>\n\n\n\n<p>Es reicht aber nicht, dass eine PPF-Aktion definiert ist; sie muss n\u00e4mlich auch eingeplant werden, sonst ist sie nicht ausf\u00fchrbar und wird nicht im \u00ab<em>Action<\/em>\u00bb Men\u00fc angeboten.<\/p>\n\n\n\n<p>Die Einplanung wird mit der sehr langsamen und sperrigen Transaktion <strong>CRMC_ACTION_CONF<\/strong> \u00ab<em>Aktionsprofil Konfigurieren<\/em>\u00bb eingerichtet.<\/p>\n\n\n\n<p>Diese Einplanung ist \u00fcblicherweise mit einer Einplanungsbedingung gekn\u00fcpft:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1322\" height=\"164\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic11-1.png\" alt=\"\" class=\"wp-image-37453\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic11-1.png 1322w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic11-1-1024x127.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic11-1-768x95.png 768w\" sizes=\"(max-width: 1322px) 100vw, 1322px\" \/><\/figure>\n\n\n\n<p>Erst wenn die Bedingung erf\u00fcllt ist, taucht die Aktion im \u00ab<em>Action<\/em>\u00bb Men\u00fc auf, damit der Anwender sie ausw\u00e4hlen und ausf\u00fchren kann.<\/p>\n\n\n\n<p>So sieht die Einplanungsbedingung in dem etwas eigenwilligen Regel-Editor aus:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"529\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic12.png\" alt=\"\" class=\"wp-image-37457\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic12.png 829w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic12-768x490.png 768w\" sizes=\"(max-width: 829px) 100vw, 829px\" \/><\/figure>\n\n\n\n<p>Die Aktion \u00ab<em>Confirm Defect Correction with Transport<\/em>\u00bb wird nur dann angeboten, wenn der aktuelle Status <strong>S1TMHEAD E0004<\/strong> \u00ab<em>Transport to Retesting<\/em>\u00bb ist (<strong>++<\/strong> ist eine Wildcard), der Vorgang fehlerfrei ist, <strong><u>und<\/u><\/strong> (!) der Parameter <strong>DOCUMENT_ASSIGNED<\/strong> <strong><u>nicht<\/u><\/strong> gesetzt ist! <strong>CONFIRM_ALLOWED<\/strong> ist ein zus\u00e4tzlicher bedingender Parameter.<\/p>\n\n\n\n<p>Die meisten Parameter in diesem Parameter-Container, die in dieser Bedingung ausgewertet werden, stammen aus dem gerade aktiven \u00ab<em>Business Object<\/em>\u00bb, hier <strong>BUS2000116<\/strong> \u00ab<strong><em>S<\/em><\/strong><em>ervice<\/em>\u00bb. Man erkennt sie am Pr\u00e4fix \u00ab<em>&amp;CRM Service Process.<\/em>\u00bb. Diese werden automatisch zur Laufzeit gef\u00fcllt.<\/p>\n\n\n\n<p>\u00dcbrigens, das \u00ab<strong><em>S<\/em><\/strong>\u00bb, das automatisch der Kurzbeschreibung der Transportauftr\u00e4ge vorangestellt wird, die durch den ChaRM\/FB erzeugt werden, stammt aus diesem \u00ab<strong><em>S<\/em><\/strong><em>ervice<\/em>\u00bb.<\/p>\n\n\n\n<p>Man kann aber zus\u00e4tzliche eigene Parameter definieren, die muss man aber selbst durch eigenes Coding bef\u00fcllen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1758\" height=\"849\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic13.png\" alt=\"\" class=\"wp-image-37459\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic13.png 1758w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic13-1024x495.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic13-768x371.png 768w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic13-1536x742.png 1536w\" sizes=\"(max-width: 1758px) 100vw, 1758px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Die Technik hinter den Bedingungen<\/h2>\n\n\n\n<p>Dieses Bef\u00fcllen eigener, zus\u00e4tzlicher Parameter geschieht in einer Implementierung des Business Add-Ins (BAdI) <strong>CONTAINER_PPF<\/strong>. F\u00fcr die Pflege von BAdIs ist die Transaktion <strong>SE18<\/strong> zust\u00e4ndig.<\/p>\n\n\n\n<p>Hier die entscheidende Implementierung von Focused Build (SE18 -&gt; Men\u00fc Implementation -&gt; Overview):<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"926\" height=\"894\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic14.png\" alt=\"\" class=\"wp-image-37461\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic14.png 926w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic14-768x741.png 768w\" sizes=\"(max-width: 926px) 100vw, 926px\" \/><\/figure>\n\n\n\n<p>Wir betreten jetzt das Innerste der Maschine, n\u00e4mlich die FB Implementierung:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1439\" height=\"595\" src=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic15.png\" alt=\"\" class=\"wp-image-37463\" srcset=\"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic15.png 1439w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic15-1024x423.png 1024w, https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic15-768x318.png 768w\" sizes=\"(max-width: 1439px) 100vw, 1439px\" \/><\/figure>\n\n\n\n<p>Das Vorgehen ist ziemlich linear.<\/p>\n\n\n\n<p>Existiert im Container, der von der Einplanungsbedingung ausgewertet wird, ein bestimmter Parameter, wird die dazugeh\u00f6rige Methode aufgerufen, die freundlicherweise genauso heisst und die den Wert des Parameters bestimmt.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DOCUMENT_ASSIGNED()<\/strong> liest die direkte Verkn\u00fcpfung zu einem Vorg\u00e4ngerbeleg, und falls ein Defect S1DM mit dem aktuellen Vorgang verkn\u00fcpft ist, wird \u201a<em>X<\/em>\u2018 als Wert eingetragen.<br>Damit wird die Einplanungsbedingung <strong>nicht<\/strong> erf\u00fcllt, und die Aktion wird also <strong>nicht<\/strong> angeboten. Anders gesagt: ist die Defect Correction ein Folgebeleg eines Defects, dann kann man sie nicht direkt best\u00e4tigen.<\/li>\n\n\n\n<li><strong>CONFIRM_ALLOWED()<\/strong> schliesst eine L\u00fccke.<br>Sie geht rekursiv die Belegflusskette r\u00fcckw\u00e4rts, und falls hier ein Defect S1DM gefunden wird, wird ein Leerzeichen gesetzt, wodurch die Einplanungsbedingung ebenfalls nicht angeboten wird.<br>Man kann also nicht mogeln, indem man zwischen dem Defect und der Defect Correction eine andere Vorgangsart schaltet.<br>Wobei ich mich frage, ob dann die Automatik immer noch funktioniert, also ob die Best\u00e4tigung des Defects die Defect Correction ebenfalls best\u00e4tigt. Ich sch\u00e4tze, dieser Fall tritt \u00e4usserst selten auf, daher habe ich ihn nicht ausprobiert.<\/li>\n<\/ul>\n\n\n\n<p>Ich hoffe, das schillernde Verhalten der Focused Build Defect Correction S1TM ausreichend erhellt zu haben und so die Verwirrung entwirrt zu haben.<\/p>\n\n\n\n<p>Danke f\u00fcr die Lekt\u00fcre<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>wusste schon Gustav Freytag\u00a0. Wenn wir aufstehen, erwarten wir die Pantoffeln immer an derselben Stelle neben dem Bett, damit wir sie, ohne hinzuschauen anziehen k\u00f6nnen. Gross ist die Verwirrung, wenn der Fuss pl\u00f6tzlich in der Leere tappt. Zuerst \u00e4rgerlich, dann der Panik verfallend, suchen wir barfuss die Pantoffeln, um schliesslich die Ursache f\u00fcr ihr Verschwinden zu entdecken: Der Hund hat sie entf\u00fchrt und knabbert jetzt gen\u00fcsslich daran.<\/p>\n","protected":false},"author":16,"featured_media":37754,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[344],"tags":[336],"class_list":["post-37430","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-alm-kaffeekraenzchen-das-alm-magazin","tag-kaffeekraenzchen"],"acf":[],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/www.blue.works\/wp-content\/uploads\/2024\/10\/Pic01_full-1-scaled.jpg","_links":{"self":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts\/37430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/comments?post=37430"}],"version-history":[{"count":6,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts\/37430\/revisions"}],"predecessor-version":[{"id":43257,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/posts\/37430\/revisions\/43257"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/media\/37754"}],"wp:attachment":[{"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/media?parent=37430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/categories?post=37430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blue.works\/de\/wp-json\/wp\/v2\/tags?post=37430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}