CAP-News 40 CAP-News ist in unrägelmäßigen Abständen erscheinende Information zum Produktkonfigurator CAP/VARIANTS. Hier werden die neuen Befehle, Funktionen und Möglichkeiten beschrieben. In CAP-News komplett sind alle bisher erschienen Informationen zusammengefasst. Dies ist aber nicht eine vollständige Beschreibung der Funktionalität des Produktkonfigurators, sondern nur die Neuerungen die seit Mai 2002 dazugekommen sind. Der komplette Befehlsumfang ist in der jeweiligen Programhilfe und in der aktuellen Schulungsunterlage enthalten. CAP-Suite und CAP-/ VARIANTS R7.1 Februar 2013 PLAUSI mit Parameterübergabe... 2 Zweiter TEXT: Bereich als Zwischenspeicher... 4 Summenlogik und Abschluss mit Datenübergabe an InforCOM... 4 Anlegen von lokalen Merkmalsblättern.... 5 SQLENDE:... 6 EMAIL:... 6 Tooltipp im E-Logik Editor... 6 $Sel... 7 SELSML:... 7 SELVQL:... 7 ABi.Fildersadt@t-online.de 1/7 www.abi-cap.com
PLAUSI mit Parameterübergabe (InforCOM seit 2002) Manchmal ist es notwendig, beim Aufruf einer Plausi einen oder mehrere Parameter zu übergeben. Ein Bespiel ist eine Plausi beim Druck der Belege im Kundenauftrag. Eine Möglichkeit wäre für jeden vom Anwender ausgewählten Beleg (inkl. Vorschau, Probedruck, Druck bzw. Storno) ein eigene Plausi zu definieren und an der geeigneter Stelle im Lj4 aufzurufen. besser wäre, wenn an allen diesen Stellen immer die gleiche Plausi aufgerufen werden kann mit weiteren Parametern (Spezifikation dessen, was der Anwender ausgewählt hat). Nachfolgend wird eine Methode beschrieben, welche genau das erlaubt. Zur Übergabe der Parameter von Lj4 an Plausi muss ein Normblatt angelegt werden, welches die Parameter beschreibt. Beim Aufruf der Plausi mit Lja.MGSEI kann dann als 2. Parameter der Name des Normblattes und als 3. Parameter die Werte der Variablen mit * getrennt übergeben werden. Dieses Normblatt kann z.b. aus einer CAP-Tabelle heraus definiert werden. Die Tabelle selber muss nicht vorhanden sein. Die Parameter können nicht einzeln eingesetzt werden, sondern immer nur paarweise! Existiert das Normblatt nicht, werden keine Daten übertragen. Definition eines Normblattes (Bsp. Plausi ) mit den Übergabeparameten für den Aufruf der Plausi Im Beispiel sind 2 alphanummerische Variablen Var01, Var02 und á 10 Zeichen und eine Zahl mit maximaler Länge von 7 Zeichen inklusive 2 Nachkommastellen definiert. Nummerischen Werte müssen mit Punkt statt Komma übergeben werden. Beispiel Aufruf der Plausi in der Funktion Angebot Belege erstellen mit Angabe des Normblattes Plausi und Parametern ("Angebot*Zust6.5* 56.78*"): Sub mnum8ango.mnufunction.mnuangerstellen.click() If bfrmmg.glbsvp("pl-agprint", "Plausi", "Angebot*Zust6.5* 56.78*") = 100 Then bfrmm8.erstbelegang() End If End Sub // mnum8ango.mnufunction.mnuangerstellen.click ABi.Fildersadt@t-online.de 2/7 www.abi-cap.com
Das Standard Lj4-Programm bfrmmg.glbsvp muss um die zwei zusätzliche Parameter erweitert werden: Function bfrmmg.glbsvp( ByVal ElName As tstring, ByVal NBName As tstring, ByVal SMAU As tstring ) As tshort /*----------------------------------------------------------------------------- @BeginComment bfrmmg.glbsvp CAP-Interface; CAP-PLAUSI @F(Syntax) Sub bfrmmg.glbsvp( ByVal ElName As tstring, ByVal NBName As tstring, ByVal SMAU As tstring )As tshort @F(Beschreibung) Aufruf CAP_Interface bzw. CAP-PLAUSI. @F(Parameter) IN: @K(ElName) Name der Entscheidungslogik. @K(NBName) Name des Normblattes mit Satzaufbau des SAMU-Satzes. @K(SMAU) Daten in Form "Zeichenkette * 123.45*Zeichenkette*" (max. 860 Zeichen). @F(Rückgabewert) Variable $LjSteuer aus E-Logik bzw. 101 bei Fehler. @F(Vorbedingung) ZwiSp.ActVt = aktuelle Vtab und mindestens eine Zeile. @F(Nachbedingung) keine. @EndComment -----------------------------------------------------------------------------*/ // 04.03.99 P.Schramm Aufruf der ELogik über bfrmmg.glbsvp (früher MGSVP) // 06.12.2012 ABi 2 Zusätzliche Parameter NBName und SMAU eingebaut GlbSvp = Lja.MGSEI(ElName, NBName, SMAU) End Function // bfrmmg.glbsvp Beispiel für einen PLAUSI-Aufruf In der Plausi Stehen dann die Werte als Variablen zur Verfügung. ABi.Fildersadt@t-online.de 3/7 www.abi-cap.com
Zweiter TEXT: Bereich als Zwischenspeicher (CAP-Suite ab 12.2012) Im zweitem Textbereich kann der aktuelle TEXT: abgelegt und wieder hergeholt werden. * TEXT: in TEXT2 übertragen (TEXT2 = TEXT:) TEXT: "1". TEXTSP:. */ TEXT: = TEXT2. */ "1" = "1" *TEXT: an den TEXT2 anhängen (TEXT2 + TEXT:) TEXT: "2". TEXTSP: +. */ TEXT2 + TEXT: = TEXT2 */ "1" "2" = "12" *TEXT: und TEXT2 vertauschen (TEXT: <-> TEXT2) TEXT: "3". TEXTSP: <. */ TEXT: <-> TEXT2. = TEXT: TEXT2 */ "3" <-> "12" = "12" "3" *TEST2 in TEXT: übertragen (TEXT: <- TEXT2) TEXT: "4". TEXTLA:. */ TEXT: <- TEXT2. = TEXT: TEXT2 */ "4" "3" = "3" "3" *TEST2 an TEXT: anhängen (TEXT: + TEXT2) TEXT: "5". TEXTLA: +. */ TEXT: + TEXT2. = TEXT: TEXT2 */ "5" "3" = "53" "53" Damit können Zwischenergebnisse aus dem TEXT: Bereich gespeichert und bei Bedarf wiederhergestellt werden. Summenlogik und Abschluss mit Datenübergabe an InforCOM (InforCOM7.1 ab 12.2012) Problemstellung in InforCOM: Wenn eine Merkmalerfassung mit Summenlogik neu berechnet werden muss, schreibt die Summenlogik gleichzeitig in die Infor Felder. Dies ist nicht immer erwünscht. Eine Unterscheidung ob die Summenlogik gestartet wurde oder Abschluss der Merkmalerfassung, gab es bisher nicht. Neuer Eintrag in der VAPPS.INI steuert ob die Summenlogik Daten in InforCOM schreibt oder nicht. VPPS.INI [CAP] InforBySave=Yes Ist der Eintrag auf No, oder nicht vorhanden, funktioniert es wie bisher. Die Summenlogik überträgt die Daten immer in InforCOM. Ist der Eintrag auf Yes, werden die Daten nicht mehr durch die Summenlogik übertragen. Dafür wird beim Abschließen oder Speichern der Merkmalerfassung eine neue E-Logik gestartet: Sachbereich_USE. Diese läuft nur ein einziges Mal und überträgt dabei die Daten in InforCOM. ABi.Fildersadt@t-online.de 4/7 www.abi-cap.com
Anlegen von lokalen Merkmalsblättern. (CAP-Suite ab 12.2012) Diese Funktionalität ist nur dann Verfügbar, wenn die lokalen Merkmalblätter beim Starten der Summenlogik automatisch angelegt werden. Bei der Anlage mit Bild nach Unten oder F4 Taste steht diese Funktionalität nicht zur Verfügung! Gegeben ist ein Sachbereich mit einem globalen und drei lokalen Merkmalsblättern. Die E-Logiken in einzelnem: * TestLokal1EL1: SbSg-Logik1 Lokal1 *------------------------------------------------------------------------------ TEST: "Ein". Durchlauf := 0. Durchlauf +1. Index := 1. WENN: Index < 3. DANN: $Sg = "*". */Anlegen und gleich noch einmal Index +1. malokal1 = "L1: " + Durchlauf. SONST: $Sg = " Lokal2". */keine weitere L1 Blätter anlegen, dafür das 2.lokale MB * $Sg = "* ". */noch einmal Anlegen und dann keine weitere Anlage ENDE. * TestLokal2EL1: SbSg-Logik1 Lokal2 *------------------------------------------------------------------------------ TEST: "Ein". Durchlauf +1. malokal2 = "L2:" + Durchlauf. *WENN: "was auch immer" DANN: $Sg = "Lokal3". */statt Sachgruppe Lokal2 die Lokal3 anlegen malokal3 = "L3:" + Durchlauf. Lokal3Angelegt = "Ja". * TestLokal3EL1: SbSg-Logik1 Lokal3 *------------------------------------------------------------------------------ TEST: "Ein". WENN:? Lokal3Angelegt. DANN: $Sg = "". LOGENDE. ENDE. */nicht anlegen Durchlauf +1. malokal3 = "L3:" + Durchlauf. Nach dem die Merkmalerfassung betreten wird steht man auf dem 1. Globalen Merkmalsblatt. Wenn jetzt die Summenlogik gestartet wird, läuft zuerst die TestLokal1EL1 drei Mal. - Beim 1. Durchlauf wird das MB Lokal1 mit Wert L1: 1 angelegt. ABi.Fildersadt@t-online.de 5/7 www.abi-cap.com
- Beim 2. Durchlauf wird das MB Lokal1 mit Wert L1: 2 angelegt. - Beim 3. Durchlauf wird das MB Lokal1 nicht angelegt und mit $Sg = " Lokal2" wird das zweite lokale MB angestoßen. Beim 4. Durchlauf wird jetzt das MB Lokal2 durch das MB Lokal3 ausgetauscht. Beim 5. Durchlauf wird jetzt das MB Lokal3 (weil im Durchlauf 4 bereits angelegt) nicht angelegt. Mögliche Kombinationen: $Sg = "". oder $Sg = " ". Nächste Sachgruppe anlegen $Sg = "*". Aktuelle Sachgruppe anlegen und den Vorgang wiederholen. $Sg = "* ". Aktuelle Sachgruppe anlegen und aufhören. $Sg = "*Sg2". Aktuelle Sachgruppe anlegen und die Sachgruppe Sg2 anlegen. $Sg = " Sg2". Aktuelle Sachgruppe nicht anlegen und die Sachgruppe Sg2 anlegen. $Sg = "Sg2". Aktuelle Sachgruppe durch die Sg2 austauschen. SQLENDE: (CAP-Suite 12.2012) SQLENDE: [$DbIndex] "[Aktion]". Wird kein $DbIndex angegeben, werden alle offene Datenbanken berücksichtigt. Aktion "TransEnde" oder "Commit" gibt Änderungen frei zum Speichern frei. Mit Aktion = "RollBack" werden die Änderungen verworfen EMAIL: (ab 11.2012) Beim Direktversand sind die Anhänge auch möglich. Hinweis: Je nach Einstellungen im Exchange, müssen die Sendeadressen immer eingegeben werden. Tooltipp im E-Logik Editor (CAP-Suite 01.2013) Wenn ein Befehl mit Doppelpunkt eingegeben wird, erscheint eine Eingabehilfe. Diese bleibt so lange stehen bis die Zeile verlassen, ein Punkt eingegeben, oder die Taste Return oder Esc geklickt wird. ABi.Fildersadt@t-online.de 6/7 www.abi-cap.com
$Sel (CAP-Suite 01.2013) Anzahl der $Sel Treffer die durch Befehle SELEKT: SELSML: und SELSQL: erstellt werden, ist in die Systemvariable $SelZ zu finden. Wenn eigene $Sel Variablen durch direkte Zuweisung gemacht werden, kann die Anzahl mit z.b. $SelZ +1. erhöht/richtiggestellt werden. SELSML: (ab 01.2013) SELSML: "Teilenummer" 100. Zusätzlicher Parameter begrenzt die maximale Anzahl Treffer. SELVQL: (VARIANTS 01.2013) SELSQL"[Statementname]" ["Alias"] (Key1 [,Alias] [Key2...]) [n]) 100. Zusätzlicher Parameter begrenzt die maximale Anzahl Treffer. ABi.Fildersadt@t-online.de 7/7 www.abi-cap.com