//Letzte Änderung 08.12.2020 (v6.3) Achtung nun Adressmapping über CRM ID //Letzte Änderung 11.01.2021 v6.4 Implementier duplicatebp für BFV Verträge // 07.02.2022 Anpassung IT IBAN // 16.02.2022 IBAN Update nur noch wenn IBAN in Payload vorhanden // 01.06.2022 Language Code Implementierung // 19.09.2022 Adress2 Mapping // 18.10.2022 Versandart wird Pflichtfeld in der GP SST (CBU) // https://jira.eon.com/browse/EMPEPI1-124 // 18.11.2022 8.2 CBU Banken aus IBAN ableiten // https://jira.eon.com/browse/EMPEPI1-130 // 24.01.2023 CBU: Existenz einer E-Mail-Adresse bei Versandart M prüfen // https://jira.eon.com/browse/EMPEPI1-130 // 29.06.2023 https://jira.eon.com/browse/EMPEPI1-281 Prüfung ob Lieferant exisitiert und Update BP -L // 03.11.2023 Bugfix copybp -L (TS) // 09.11.2023 fix B2B Adress BuildingFloorRoom // 25.01.2024 CSV Versandart soll nicht überschrieben werden -> Entfernt am 17.11.2025 // 23.07.2024 BUS-7580 Anpassung Einzugsermächtigung auch auf tNO // 13.11.2024 BUS-9352 Anpassung Zahlungsbedingung // 28.11.2024 Beim GP muss der Firmenname > 50 Zeichen angepasst werden, das alles >50Zeichen künfitg in Firmenname 2 statt Adresszeile 3 // 14.03.2025 BUS-11342 SwiftNo/BIC im Update BankAccounts ergänzt // 23.05.2025 BUS-12158 Erweiterung der Geschäftspartner-API um Parameter f. Buyer/Seller/Leitweg-ID // 03.06.2025 BUS-12296 New Endpoint URLs for CRM interfaces // 21.07.2025 Signature Date Pflichtangabe bei SEPA Mandat // 03.09.2025 PFT-337 GP-API liefert BT-18 Geschäftszeichen für BiMA (Object ID) // 11.11.2025 PFT-728 Umstellung ShippingType Validierung von OUTPUT_RULES auf SPOOL_TYPES // 01.12.2025 PFT-931 [BIMA] Anpassung der GP-API zum Empfang mehrere Adressen per Request // 29.05.2026 PFT-1845 Austausch U_EON_RECACC_PAY und U_EON_RECACC_REC var slib = $.import("uniorg.ServiceLayer", "B1SLLogic"); var slDest = $.import("uniorg.destinations", "uodestlib"); var bpbl = $.import("uniorg.eon.libs", "bp_businesslogic"); var copybplib = $.import("uniorg.eon.libs", "copybp"); var ParDebug = false; var output = {}; var outMessages = []; var outErrorMessages = []; var outMsg = {}; var outStatus = "success"; var myDebug = {}; var UserName = slDest.uniorg_eon_nice_v1_UserName; var UserPass = slDest.uniorg_eon_nice_v1_UserPass; var UserComp = slDest.uniorg_eon_nice_v1_UserComp; var series_b2c = 68; var series_b2b = 69; var series_b2m = 70; var groupcode_b2c = 100; var groupcode_b2b = 102; var groupcode_b2m = 103; var cmpprivate_b2c = "cPrivate"; var cmpprivate_b2b = "cCompany"; var cmpprivate_b2m = "cCompany"; var use_iban = false; var service_version = '10.3'; function setOutputMessage() { $.response.contentType = "application/json"; $.response.setBody(JSON.stringify(output)); $.response.status = $.net.http.OK; } function pad(number) { var r = String(number); if (r.length === 1) { r = '0' + r; } return r; } function convertToISODate(dateString) { try { //var options = { year: 'numeric', month: '2-digit', day: '2-digit' }; var d = new Date(dateString); if (!isNaN(d)) { //var convDate = d.toLocaleDateString('de-DE', options); var convDate = d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate()); return convDate; } else { return dateString; } } catch (err) { return (err); } } function checkSupplierExist(cardcode) { var suppcardcode = cardcode + '-L'; var conn = $.db.getConnection(); var pstmt; var exists = false; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = "SELECT T0.\"CardCode\" FROM \"XXREPXX\".\"OCRD\" T0 WHERE T0.\"CardCode\" = ?"; query = query.replace(/XXREPXX/g, UserComp); pstmt = conn.prepareStatement(query); pstmt.setString(1, suppcardcode); var rs = pstmt.executeQuery(); exists = rs.next(); rs.close(); pstmt.close(); conn.close(); return exists; } function getCustRECACC(custpgnr) { var conn = $.db.getConnection(); var pstmt; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; query = query.replace(/XXREPXX/g, UserComp); pstmt = conn.prepareStatement(query); pstmt.setString(1, custpgnr); var rs = pstmt.executeQuery(); if (!rs.next()) { // outMsg = {}; // outMsg.method = "getnexval from sequence error"; // outMsg.status = "error"; // outMsg.message = e.message; //outMessages.push(outMsg); } else { return rs.getString(1); } rs.close(); pstmt.close(); conn.close(); } function getLanguageCode(ISOCODE) { var conn = $.db.getConnection(); var pstmt; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = 'SELECT T0."Code" FROM "XXREPXX".OLNG T0 WHERE upper(T0."ShortName") = upper(?)'; query = query.replace(/XXREPXX/g, UserComp); pstmt = conn.prepareStatement(query); pstmt.setString(1, ISOCODE); var rs = pstmt.executeQuery(); if (!rs.next()) { // outMsg = {}; // outMsg.method = "getnexval from sequence error"; // outMsg.status = "error"; // outMsg.message = e.message; //outMessages.push(outMsg); } else { return rs.getString(1); } rs.close(); pstmt.close(); conn.close(); } function getPaymentTerm(PaymentName) { var conn = $.db.getConnection(); var pstmt; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; //vendeor var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = 'SELECT T0."GroupNum" FROM "XXREPXX".OCTG T0 WHERE upper(T0."PymntGroup") = upper(?)'; query = query.replace(/XXREPXX/g, UserComp); pstmt = conn.prepareStatement(query); pstmt.setString(1, PaymentName); var rs = pstmt.executeQuery(); if (!rs.next()) { throw new Error(PaymentName + " not found in SAP B1 Payment Terms(OCTG)."); } else { return rs.getInteger(1); } rs.close(); pstmt.close(); conn.close(); } function splitcardname(mycardname) { var mycardnamenew = []; if (mycardname.length > 50) { var mycardname1 = mycardname.substring(0, 50); var mylastindex1 = mycardname1.lastIndexOf(' '); var mylastindex2 = mycardname1.lastIndexOf('-'); var mylastindex3 = mycardname1.lastIndexOf('&'); var mylastindex = Math.max(mylastindex1, mylastindex2, mylastindex3); mycardname1 = mycardname.substring(0, mylastindex); var mycardname2 = mycardname.substring(mylastindex + 1, 100); mycardnamenew.push(mycardname1); mycardnamenew.push(mycardname2); } else { mycardnamenew.push(mycardname); mycardnamenew.push(""); } return mycardnamenew; } function convertAdrType(adrtype) { switch (adrtype) { case '1': case 'S': return 'bo_ShipTo'; case '2': case '3': case 'B': return 'bo_BillTo'; default: return 'bo_BillTo'; } } function getnextvalsepaid() { var conn = $.db.getConnection(); var pstmt; var query = "select lpad(\"NICEPORTAL\".\"SEQ_MAND_ID\".NEXTVAL ,10,'0') from dummy"; pstmt = conn.prepareStatement(query); var rs = pstmt.executeQuery(); if (!rs.next()) { outMsg = {}; outMsg.method = "getnexval from sequence error"; outMsg.status = "error"; // outMsg.message = e.message; outMessages.push(outMsg); } else { return rs.getString(1); } rs.close(); pstmt.close(); conn.close(); } function parseIBAN(iban) { var conn = $.hdb.getConnection(); try { var myCountry = iban.substring(0, 2); var rs1 = conn.executeQuery('SELECT COUNT(\'A\') as COUNT_COUNTRY FROM "INTEGRATION_DATA".BANKS_SCHEMA WHERE COUNTRY = ? ; ', myCountry); if (rs1[0].COUNT_COUNTRY == 0) { throw new Error(myCountry + " IBAN currently not supported."); } var rs2 = conn.executeQuery('SELECT FULLLENGHTH FROM "INTEGRATION_DATA".BANKS_SCHEMA WHERE COUNTRY = ? ; ', myCountry); if (rs2[0].FULLLENGHTH !== iban.length) { throw new Error(myCountry + " IBAN length invalid."); } var rs = conn.executeQuery('SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS(?); ', iban); var bankDetails = { BankCountry: rs[0].COUNTRY, BankCode: rs[0].BANKCODE, AccountNo: rs[0].ACCOUNT, SwiftNo: rs[0].SWIFTNO, BankName: rs[0].BANKNAME }; return bankDetails; } catch (error) { outMsg = {}; outMsg.method = "parseIBAN"; outMsg.status = "error"; outMsg.message = error.message; outMessages.push(outMsg); outStatus = "error"; return false; } finally { conn.close(); } // throw new Error(myCountry + " IBAN currently not supported.") /* var myCountry = iban.substring(0, 2); switch (myCountry) { case 'DE': return { BankCountry: myCountry, BankCode: iban.substring(4, 12), AccountNo: iban.substring(12, 23) }; case 'IT': return { BankCountry: myCountry, BankCode: iban.substring(5, 10), Branch: iban.substring(10, 15), AccountNo: iban.substring(15, 27) }; default: throw new Error(myCountry + " IBAN currently not supported.") } */ } function checkShippingType(_shippingType, _schema) { var conn = $.hdb.getConnection(); try { conn.executeUpdate("SET SCHEMA \"" + _schema + "\""); var rs = conn.executeQuery('SELECT "Code" FROM "@UO_SPOOL_TYPES" WHERE "Code"=? ', _shippingType); myDebug.checkShippingType = rs; return rs.length > 0; } catch (error) { outMsg = {}; outMsg.method = "checkShippingType"; outMsg.status = "error"; outMsg.message = error.message; outMessages.push(outMsg); return false; } finally { conn.close(); } } function checkShippingTypeMail(_email) { if (_email !== undefined) { if (_email.length === 0) { outMsg = {}; outMsg.method = "checkShippingTypeMail"; outMsg.status = "error"; outMsg.message = "E-mail address is missing but shipping type is Mail."; outMessages.push(outMsg); outStatus = "error"; } } else { outMsg = {}; outMsg.method = "checkShippingTypeMail"; outMsg.status = "error"; outMsg.message = "E-mail address is missing but shipping type is Mail."; outMessages.push(outMsg); outStatus = "error"; } } function createBankIfMissing(iban, SESSIONID, NODEID) { outMsg = {}; outMsg.method = "checkBank"; outMsg.status = "error"; if (iban) { var bankDetails = parseIBAN(iban); if (bankDetails === false) { return; } var conn = $.hdb.getConnection(); conn.executeUpdate("SET SCHEMA \"" + UserComp + "\""); var rs = conn.executeQuery('SELECT "AbsEntry" FROM ODSC WHERE "BankCode"=? AND "CountryCod"=?', bankDetails.BankCode, bankDetails.BankCountry); myDebug.queryBankResult = rs; if (rs.length === 0) { outMsg.status = "success"; outMsg.message = "not exists"; outMessages.push(outMsg); outMsg = {}; outMsg.method = "createBank"; var bankObj = { "BankCode": bankDetails.BankCode, "CountryCode": bankDetails.BankCountry, "BankName": bankDetails.BankName, "SwiftNo": bankDetails.SwiftNo }; myDebug.createBankObj = bankObj; var responseCreate = slib.postDynamicEntity("Banks", JSON.stringify(bankObj), SESSIONID, NODEID); outMsg.statuscode = responseCreate.status; myDebug.responseBankCreate = JSON.parse(responseCreate.body.asString()); if (responseCreate.status >= 200 && responseCreate.status < 300) { outMsg.status = "success"; outMessages.push(outMsg); } else { outMsg.status = "error"; //outMsg.message = myDebug.responseBankCreate; outStatus = "error"; var slError = myDebug.responseBankCreate.error; if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) { outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")"; } else { outMsg.message = JSON.stringify(myDebug.responseBankCreate); } outMsg.response = myDebug.responseBankCreate; outErrorMessages.push(outMsg); } } else { outMsg.status = "success"; outMsg.message = "exists"; outMessages.push(outMsg); } conn.close(); } else { outMsg.status = "error"; outStatus = "error"; outMsg.message = "IBAN is missing"; outMessages.push(outMsg); } } function buildBPObj(JbpObj, SBOOBJ) { var myseries = ''; var mygroupcode = ''; var mycardname = ''; var mycmpprivate = ''; var mybpcontactname = ''; var defaultBillToAddressIdx = JbpObj.addresses.findIndex(function(adr) { return adr.type === "3" && adr.standard === "yes";}); switch (JbpObj.group) { case 'B2C': mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); myseries = series_b2c; mygroupcode = groupcode_b2c; mycmpprivate = cmpprivate_b2c; break; case 'B2B': //mycardname = JbpObj.name.toString(); mycardname = defaultBillToAddressIdx === -1 ? JbpObj.addresses[0].address.toString() : JbpObj.addresses[defaultBillToAddressIdx].address.toString(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); myseries = series_b2b; mygroupcode = groupcode_b2b; mycmpprivate = cmpprivate_b2b; break; case 'B2M': //mycardname = JbpObj.name.toString(); mycardname = defaultBillToAddressIdx === -1 ? JbpObj.addresses[0].address.toString() : JbpObj.addresses[defaultBillToAddressIdx].address.toString(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); myseries = series_b2m; mygroupcode = groupcode_b2m; mycmpprivate = cmpprivate_b2m; break; default: mycardname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); mybpcontactname = JbpObj.name.toString().trim() + ' ' + JbpObj.surname.toString().trim(); myseries = series_b2c; mygroupcode = groupcode_b2c; mycmpprivate = cmpprivate_b2c; } //var myaddress23 = splitcardname(mycardname); var bpObj = {}; bpObj.Series = myseries; bpObj.CompanyPrivate = mycmpprivate; // JbpObj.type.toString(); bpObj.CardName = mycardname; bpObj.CardType = 'C'; bpObj.GroupCode = mygroupcode; // JbpObj.group.toString(); bpObj.Phone1 = JbpObj.phone.toString(); bpObj.Cellular = JbpObj.mobile_phone.toString(); // To Do: Language Übersetzen bpObj.LanguageCode = getLanguageCode(JbpObj.language_code.toString()); if (JbpObj.vatid) { bpObj.FederalTaxID = JbpObj.vatid.toString(); } if (JbpObj.bank_account.sepa_mandate.toString() === 'Ja') { bpObj.PayTermsGrpCode = 13; } else if (JbpObj.payment_term) { bpObj.PayTermsGrpCode = getPaymentTerm(JbpObj.payment_term); } bpObj.EmailAddress = JbpObj.email.toString(); bpObj.U_EON_ID_CRM = JbpObj.id_crm.toString(); bpObj.U_EON_ID_CRM_INTERNAL = JbpObj.id_msd.toString(); if (JbpObj.shipping_type) { bpObj.U_UO_OUTPUT_VSARTAR = JbpObj.shipping_type.toString(); } if (!JbpObj.pgnr) { bpObj.U_EON_ASSU = 'N'; bpObj.Affiliate = 'tNO'; } if (JbpObj.pgnr) { bpObj.U_EON_PGN = JbpObj.pgnr.toString(); bpObj.DebitorAccount = getCustRECACC(JbpObj.pgnr.toString()); bpObj.U_EON_ASSU = 'Y'; bpObj.Affiliate = 'tYES'; } if (JbpObj.res_prop === true) { bpObj.U_EON_WVB = 'Y'; } if (JbpObj.res_prop === false) { bpObj.U_EON_WVB = 'N'; } bpObj.U_UO_EDI_BUYER_ID = JbpObj.e_invoice_buyerid; bpObj.U_UO_EDI_SELLER_ID = JbpObj.e_invoice_sellerid; bpObj.U_UO_EDI_ROUTING_ID = JbpObj.e_invoice_routingid; bpObj.U_UO_EDI_OBJECT_ID = JbpObj.e_invoice_objectid; bpObj.BPAddresses = []; // bpObj.BPAddresses[0].AddressName = 'test'; for (var g in SBOOBJ.BPAddresses) { for (var h in JbpObj.addresses) { var mybpAdresses = {}; // mybpAdresses.g = g; // mybpAdresses.h = h; var myaddressbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); //var myaddressbpname = JbpObj.addresses[h].addressid.toString(); mybpAdresses.AddressName = SBOOBJ.BPAddresses[g].AddressName; mybpAdresses.AddressType = SBOOBJ.BPAddresses[g].AddressType; mybpAdresses.BPCode = SBOOBJ.BPAddresses[g].BPCode; mybpAdresses.RowNum = SBOOBJ.BPAddresses[g].RowNum; if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[ h].type)) { //mybpAdresses.AddressName = JbpObj.addresses[h].address.toString(); mybpAdresses.AddressName = myaddressbpname; mybpAdresses.Street = JbpObj.addresses[h].street.toString(); //mybpAdresses.Block = 'test'; mybpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString(); mybpAdresses.City = JbpObj.addresses[h].city.toString(); //mybpAdresses.County = 'test'; mybpAdresses.Country = JbpObj.addresses[h].country.toString(); if (JbpObj.addresses[h].standard === 'yes') { if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') { bpObj.BilltoDefault = myaddressbpname; } if (convertAdrType(JbpObj.addresses[h].type) === 'bo_ShipTo') { bpObj.ShipToDefault = myaddressbpname; } } //mybpAdresses.State = 'test'; //mybpAdresses.FederalTaxID = 'test'; //mybpAdresses.TaxCode = 'test'; //mybpAdresses.BuildingFloorRoom = 'test'; /* if (JbpObj.addresses[h].type === 'B') { mybpAdresses.AddressType = 'bo_BillTo'; } else { mybpAdresses.AddressType = 'bo_ShipTo'; } */ if (JbpObj.group === 'B2B' || JbpObj.group === 'B2M') { var mybpaddress23 = splitcardname(JbpObj.addresses[h].address.toString()); //mybpAdresses.AddressName2 = mycardname; mybpAdresses.AddressName2 = mybpaddress23[0]; //mybpAdresses.AddressName3 = myaddress23[1]; mybpAdresses.U_CompanyName2 = mybpaddress23[1]; } if (JbpObj.addresses[h].address2) { mybpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString(); } if (JbpObj.addresses[h].address3) { mybpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString(); } // if (JbpObj.addresses[h].address2) { // mybpAdresses.AddressName2 = JbpObj.addresses[h].address2.toString(); // } //mybpAdresses.TypeOfAddress = 'test'; mybpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString(); mybpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString(); break; } } //mybpAdresses.BPCode = 'test'; //mybpAdresses.RowNum = 'test'; //mybpAdresses.GlobalLocationNumber = 'test'; //mybpAdresses.Nationality = 'test'; //mybpAdresses.TaxOffice = 'test'; bpObj.BPAddresses.push(mybpAdresses); } //Suche ob Objekte vorhanden, wenn nicht ergänzen for (var h in JbpObj.addresses) { var myfound = false; var myaddbpAdresses = {}; var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); for (var g in SBOOBJ.BPAddresses) { if (SBOOBJ.BPAddresses[g].U_EON_EXT_ID === JbpObj.addresses[h].addressid.toString() && SBOOBJ.BPAddresses[g].AddressType === convertAdrType(JbpObj.addresses[h].type)) { myfound = true; } } if (myfound === false) { myaddbpAdresses.AddressName = myaddbpname; //JbpObj.addresses[h].address.toString(); myaddbpAdresses.Street = JbpObj.addresses[h].street.toString(); //myaddbpAdresses.Block = 'test'; myaddbpAdresses.ZipCode = JbpObj.addresses[h].zip_code.toString(); myaddbpAdresses.City = JbpObj.addresses[h].city.toString(); //myaddbpAdresses.County = 'test'; myaddbpAdresses.Country = JbpObj.addresses[h].country.toString(); //myaddbpAdresses.State = 'test'; //myaddbpAdresses.FederalTaxID = 'test'; //myaddbpAdresses.TaxCode = 'test'; //myaddbpAdresses.BuildingFloorRoom = 'test'; if (JbpObj.addresses[h].standard === 'yes') { if (convertAdrType(JbpObj.addresses[h].type) === 'bo_BillTo') { bpObj.BilltoDefault = myaddbpname; } if (convertAdrType(JbpObj.addresses[h].type) === 'bo_ShipTo') { bpObj.ShipToDefault = myaddbpname; } } myaddbpAdresses.AddressType = convertAdrType(JbpObj.addresses[h].type); if (JbpObj.group === 'B2B' || JbpObj.group === 'B2M') { var myaddbpaddress23 = splitcardname(JbpObj.addresses[h].address.toString()); //myaddbpAdresses.AddressName2 = mycardname; myaddbpAdresses.AddressName2 = myaddbpaddress23[0]; //myaddbpAdresses.AddressName3 = myaddress23[1]; myaddbpAdresses.U_CompanyName2 = myaddbpaddress23[1]; } if (JbpObj.addresses[h].address2) { myaddbpAdresses.BuildingFloorRoom = JbpObj.addresses[h].address2.toString(); } if (JbpObj.addresses[h].address3) { myaddbpAdresses.AddressName3 = JbpObj.addresses[h].address3.toString(); } //myaddbpAdresses.TypeOfAddress = 'test'; myaddbpAdresses.StreetNo = JbpObj.addresses[h].street_no.toString(); myaddbpAdresses.U_EON_EXT_ID = JbpObj.addresses[h].addressid.toString(); bpObj.BPAddresses.push(myaddbpAdresses); } } // var myaddbpAdresses = {}; // //for (var i in bpObj.BPAddresses) { // var myfound = false; // for (var j in JbpObj.addresses) { // // console.log("i=" + i + "Name:" + bpObj.BPAddresses[i].AddressName); // console.log("j=" + j + "Name:" + JbpObj.addresses[j].address); // console.log(bpObj.BPAddresses.(Addressname, 0, JbpObj.addresses[j].address)); // // if (bpObj.BPAddresses[i].AddressName == JbpObj.addresses[j].address) { // if (bpObj.BPAddresses.indexOf(JbpObj.addresses[j].address) > 0) { // console.log("FOUND"); // myfound = true; // //((myaddbpAdresses.found = myfound; // //myaddbpAdresses.i = i; // //myaddbpAdresses.j = j; // //bpObj.BPAddresses.push(myaddbpAdresses); // } // else { // myfound = false // console.log("NOT FOUND"); //// myaddbpAdresses.found = myfound; // //bpObj.BPAddresses.push(myaddbpAdresses); // } // } // //} bpObj.ContactEmployees = []; var myfoundCP = false; for (var cpB1 in SBOOBJ.ContactEmployees) { var mybpContactEmployees = {}; mybpContactEmployees.Name = SBOOBJ.ContactEmployees[cpB1].Name; mybpContactEmployees.CardCode = SBOOBJ.ContactEmployees[cpB1].CardCode; mybpContactEmployees.InternalCode = SBOOBJ.ContactEmployees[cpB1].InternalCode; if (SBOOBJ.ContactEmployees[cpB1].Name == mybpcontactname) { mybpContactEmployees.FirstName = JbpObj.name.toString().trim(); mybpContactEmployees.LastName = JbpObj.surname.toString().trim(); mybpContactEmployees.Title = JbpObj.title.toString(); mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString(); bpObj.ContactPerson = mybpcontactname; myfoundCP = true; } bpObj.ContactEmployees.push(mybpContactEmployees); } if (myfoundCP == false) { mybpContactEmployees = {}; mybpContactEmployees.Name = mybpcontactname; //mycardname; mybpContactEmployees.FirstName = JbpObj.name.toString().trim(); mybpContactEmployees.LastName = JbpObj.surname.toString().trim(); mybpContactEmployees.Title = JbpObj.title.toString(); mybpContactEmployees.U_EON_SALUTATION = JbpObj.salutation.toString(); bpObj.ContactPerson = mybpcontactname; bpObj.ContactEmployees.push(mybpContactEmployees); } bpObj.BPBankAccounts = []; var myfoundBank = false; var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, ''); if (myIBAN !== '') { use_iban = true; } else { use_iban = false; } if (use_iban) { var bankDetails = parseIBAN(myIBAN); if (bankDetails === false) {; } else { var myCountry = bankDetails.BankCountry; var myBankCode = bankDetails.BankCode; var myAccountNo = bankDetails.AccountNo; var mySwiftNo = bankDetails.SwiftNo; var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date); for (var ba in SBOOBJ.BPBankAccounts) { var myBPBankAccounts = {}; myBPBankAccounts.BPCode = SBOOBJ.BPBankAccounts[ba].BPCode; myBPBankAccounts.InternalKey = SBOOBJ.BPBankAccounts[ba].InternalKey; myBPBankAccounts.Country = SBOOBJ.BPBankAccounts[ba].Country; myBPBankAccounts.BankCode = SBOOBJ.BPBankAccounts[ba].BankCode; myBPBankAccounts.AccountNo = SBOOBJ.BPBankAccounts[ba].AccountNo; myBPBankAccounts.IBAN = SBOOBJ.BPBankAccounts[ba].IBAN; myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID; myBPBankAccounts.SEPASeqType = SBOOBJ.BPBankAccounts[ba].SEPASeqType; if (SBOOBJ.BPBankAccounts[ba].IBAN.replace(/ /g, '') === myIBAN) { myfoundBank = true; if (JbpObj.bank_account.bic.toString() !== '') { myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString(); } else if (mySwiftNo.toString() !== '') { myBPBankAccounts.BICSwiftCode = mySwiftNo.toString(); } myBPBankAccounts.Country = myCountry; myBPBankAccounts.BankCode = myBankCode; myBPBankAccounts.AccountNo = myAccountNo; myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString(); myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString(); myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString(); myBPBankAccounts.City = JbpObj.bank_account.city.toString(); // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString(); myBPBankAccounts.SignatureDate = mySignatureDate; if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { if (!mySignatureDate) { throw new Error("SEPA mandate without signature date is not allowed."); } if (SBOOBJ.BPBankAccounts[ba].MandateID == null) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm ) { myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid(); } bpObj.CollectionAuthorization = 'tYES'; } //22.07.2024 BUS-7580 if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') { bpObj.CollectionAuthorization = 'tNO'; } } bpObj.BankCountry = myCountry; bpObj.DefaultBankCode = myBankCode; bpObj.DefaultAccount = myAccountNo; bpObj.BPBankAccounts.push(myBPBankAccounts); } if (myfoundBank === false) { myBPBankAccounts = {}; myBPBankAccounts.IBAN = myIBAN; myBPBankAccounts.Country = myCountry; myBPBankAccounts.BankCode = myBankCode; myBPBankAccounts.AccountNo = myAccountNo; if (JbpObj.bank_account.bic.toString() !== '') { myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString(); } myBPBankAccounts.AccountName = JbpObj.bank_account.account_owner.toString(); myBPBankAccounts.Street = JbpObj.bank_account.street.toString() + " " + JbpObj.bank_account.street_no.toString(); myBPBankAccounts.ZipCode = JbpObj.bank_account.zip_code.toString(); myBPBankAccounts.City = JbpObj.bank_account.city.toString(); // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString(); myBPBankAccounts.SignatureDate = mySignatureDate; if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { if (!mySignatureDate) { throw new Error("SEPA mandate without signature date is not allowed."); } // myBPBankAccounts.MandateID = SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10); // if (SBOOBJ.BPBankAccounts[ba].MandateID.IsNullOrEmpty ) //|| SBOOBJ.BPBankAccounts[ba].MandateID.substring(0,10) > JbpObj.id_crm //{ myBPBankAccounts.MandateID = JbpObj.id_crm + getnextvalsepaid(); bpObj.CollectionAuthorization = 'tYES'; myBPBankAccounts.SEPASeqType = 'sstFRST'; //} } //23.07.2024 BUS-7580 if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') { bpObj.CollectionAuthorization = 'tNO'; } bpObj.BankCountry = myCountry; bpObj.DefaultBankCode = myBankCode; bpObj.DefaultAccount = myAccountNo; bpObj.BPBankAccounts.push(myBPBankAccounts); } } } return bpObj; } function mockbuildBPObj() { var bpObj = {}; bpObj.Series = series_b2b; bpObj.CompanyPrivate = "I"; // JbpObj.type.toString(); bpObj.CardName = 'Burgmueller'; //bpObj.CardType = 'C'; //bpObj.GroupCode = 100; // JbpObj.group.toString(); //bpObj.Phone1 = JbpObj.phone.toString(); //bpObj.Cellular = JbpObj.mobile_phone.toString(); //bpObj.EmailAddress = JbpObj.email.toString(); bpObj.U_EON_ID_CRM = 'BP777888999'; bpObj.U_EON_ASSU = 'N'; return bpObj; } function upsBP(searchparam, JbpObj) { var SESSIONID = ""; var NODEID = ""; // SL credentials var loginInfo = {}; loginInfo.UserName = UserName; loginInfo.Password = UserPass; loginInfo.CompanyDB = UserComp; var slError; // SL LOGIN var response = slib.SLLogin(JSON.stringify(loginInfo), null, null); // B1SESSION and ROUTEID cookies returned by Login for (var j in response.cookies) { if (response.cookies[j].name == "B1SESSION") { SESSIONID = response.cookies[j].value; output.SessionID = SESSIONID; } else if (response.cookies[j].name == "ROUTEID") { NODEID = response.cookies[j].value; output.NodeID = NODEID; } } output.loginInfo = loginInfo; // output.loginResponse = JSON.parse(response.body.asString()); var loginResponse; try { loginResponse = JSON.parse(response.body.asString()); } catch (e) { loginResponse = response.body.asString(); } output.loginResponse = loginResponse; if (response.status !== 200) { outMsg = {}; outMsg.method = "login"; outMsg.status = "error"; //outMsg.message = output.loginResponse; slError = loginResponse.error; if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) { outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")"; } else { outMsg.message = JSON.stringify(loginResponse); } outMsg.response = loginResponse; outMessages.push(outMsg); outStatus = "error"; } if (JbpObj.vatid) { var checkmyvatid = bpbl.checkvatid(JbpObj.vatid, JbpObj.vatid.substring(0, 2).toUpperCase(), UserComp); if (checkmyvatid != "true") { outMsg = {}; outMsg.method = "checkVATID"; outMsg.status = "error"; outMsg.message = checkmyvatid; outStatus = "error"; outMessages.push(outMsg); } } // CBU 18.10.2022 Prüfung Versandart if (JbpObj.shipping_type) { var checkShippingTypeResult = checkShippingType(JbpObj.shipping_type, UserComp); if (!checkShippingTypeResult) { outMsg = {}; outMsg.method = "shipping_type"; outMsg.status = "error"; outMsg.message = "Shippingtype not valid: " + JbpObj.shipping_type; outStatus = "error"; outMessages.push(outMsg); } else { // CBU 24.01.2023 if (JbpObj.shipping_type === "M") { checkShippingTypeMail(JbpObj.email); } } } else { outMsg = {}; outMsg.method = "shipping_type"; outMsg.status = "error"; outMsg.message = "Shipping Type missing"; outStatus = "error"; outMessages.push(outMsg); } /* CBU 25.11.2022 if (outStatus !== "error") { if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') { createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID); } } */ if (outStatus !== "error") { outMsg = {}; outMsg.method = "checkExists"; //Add BP //response = slib.createBusinessPartner(BPObject, SESSIONID,NODEID); var responseGet = slib.getBusinessPartner(searchparam, SESSIONID, NODEID); //var logoutresponse = slib.SLLogout(JSON.stringify(loginInfo), null, null); //Parse response body // Removes metadata //delete body["odata.metadata"]; var bodyGet; try { bodyGet = JSON.parse(responseGet.body.asString()); } catch (e) { bodyGet = response.responseGet.asString(); } myDebug.statusGet = responseGet.status; myDebug.responseGet = bodyGet; outMsg.statuscode = responseGet.status; if (responseGet.status >= 200 && responseGet.status < 300) { outMsg.status = "success"; outMsg.message = "exists"; } else if (responseGet.status === 404) { outMsg.status = "success"; outMsg.message = "not exists"; } else { outMsg.status = "error"; //outMsg.message = bodyGet; slError = bodyGet.error; if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) { outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")"; } else { outMsg.message = JSON.stringify(bodyGet); } outMsg.response = bodyGet; outStatus = "error"; } outMessages.push(outMsg); var CardCode = ""; var bodyGetFull = {}; if (bodyGet.value[0]) { CardCode = bodyGet.value[0].CardCode; outMsg = {}; outMsg.method = "get"; var responseGetFull = slib.getBusinessPartnerFull(CardCode, SESSIONID, NODEID); myDebug.statusGetFull = responseGetFull.status; bodyGetFull = JSON.parse(responseGetFull.body.asString()); myDebug.responseGetFull = bodyGetFull; outMsg.statuscode = responseGetFull.status; if (responseGetFull.status >= 200 && responseGetFull.status < 300) { outMsg.status = "success"; } else { outMsg.status = "error"; //outMsg.message = bodyGetFull; slError = bodyGetFull.error; if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) { outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")"; } else { outMsg.message = JSON.stringify(bodyGetFull); } outMsg.response = bodyGetFull; outStatus = "error"; } outMessages.push(outMsg); } // CBU 25.11.2022 if (outStatus !== "error") { if (JbpObj.bank_account.iban.toString().replace(/ /g, '') !== '') { createBankIfMissing(JbpObj.bank_account.iban.toString().replace(/ /g, ''), SESSIONID, NODEID); } } if (outStatus !== "error") { var consBPObject = buildBPObj(JbpObj, bodyGetFull); myDebug.BPObj = consBPObject; if (CardCode !== "") { output.method = "updateBP"; var responseUpdate = slib.updateBusinessPartner(CardCode, JSON.stringify(consBPObject), SESSIONID, NODEID); outMsg = {}; outMsg.method = "update"; myDebug.statusUpdate = responseUpdate.status; outMsg.statuscode = responseUpdate.status; if (responseUpdate.status >= 200 && responseUpdate.status < 300) { myDebug.Updatemessage = "Update sucessfull"; outMsg.status = "success"; } else { myDebug.message = "Update error occured"; outMsg.status = "error"; if (responseUpdate.body) { myDebug.responseUpdate = JSON.parse(responseUpdate.body.asString()); //outMsg.message = myDebug.responseUpdate; slError = myDebug.responseUpdate.error; if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) { outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")"; } else { outMsg.message = JSON.stringify(myDebug.responseUpdate); } outMsg.response = myDebug.responseUpdate; outErrorMessages.push(outMsg); } } outMessages.push(outMsg); if (outStatus !== "error" && checkSupplierExist(CardCode)) { outMsg.method = "copyBP"; outMsg.paramCardCode = CardCode; var bpoutput = copybplib.copyBP(ParDebug, CardCode); outMsg.result = bpoutput; outMessages.push(outMsg); } } else { output.method = "createBP"; outMsg = {}; outMsg.method = "create"; var responseCreate = slib.createBusinessPartner(JSON.stringify(consBPObject), SESSIONID, NODEID); myDebug.statusCreate = responseCreate.status; outMsg.statuscode = responseCreate.status; myDebug.responseCreate = JSON.parse(responseCreate.body.asString()); if (responseCreate.status >= 200 && responseCreate.status < 300) { myDebug.Createmessage = "Create sucessfull"; outMsg.status = "success"; var createJbpObj = JSON.parse(responseCreate.body.asString()); CardCode = createJbpObj.CardCode; } else { myDebug.Createmessage = "Create error occured"; output.errorCreatestatus = myDebug.Createmessage; outMsg.status = "error"; //outMsg.message = myDebug.responseCreate; outStatus = "error"; slError = myDebug.responseCreate.error; if (slError && slError.hasOwnProperty("code") && slError.message && slError.message.value) { outMsg.message = slError.message.value + " (Code: " + slError.code.toString() + ")"; } else { outMsg.message = JSON.stringify(myDebug.responseCreate); } outMsg.response = myDebug.responseCreate; outErrorMessages.push(outMsg); } outMessages.push(outMsg); } } output.CardCode = CardCode; //output.CardName = body.CardName; slib.SLLogout(SESSIONID, NODEID); } output.debug = myDebug; $.trace.debug("DEBUG body.Get: " + JSON.stringify(myDebug)); return output; //setOutputMessage(); //return 0; } function getnextval() { var conn = $.db.getConnection(); var pstmt; var query = "select \"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL from dummy"; pstmt = conn.prepareStatement(query); var rs = pstmt.executeQuery(); if (!rs.next()) { outMsg = {}; outMsg.method = "getnexval from sequence error"; outMsg.status = "error"; // outMsg.message = e.message; outMessages.push(outMsg); } else { return rs.getString(1); } rs.close(); pstmt.close(); conn.close(); } function setBPCardCode(tableid, bpcardcode) { var conn = $.db.getConnection(); var pstmt; var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set B1_CARDCODE = '" + bpcardcode + "', UPDATE_TS = CURRENT_TIMESTAMP where ID =" + tableid; pstmt = conn.prepareStatement(query); // pstmt.setString(1,bpcardcode); // pstmt.setString(2,tableid); var rs = pstmt.executeUpdate(); myDebug.UpdateQuery = query; pstmt.close(); conn.commit(); conn.close(); } function setRESPONSE(tableid, respstatus, respmessage, errormessage) { var conn = $.db.getConnection(); var pstmt; var query = "update \"NICEPORTAL\".\"UO_CRM_DATA_BP\" set RESPONSE_STATUS = ? , RESPONSE_MESSAGE =?, ERROR_MESSAGE=? where ID =" + tableid; pstmt = conn.prepareStatement(query); pstmt.setString(1, respstatus.toString()); pstmt.setString(2, respmessage.toString()); pstmt.setString(3, errormessage.toString()); var rs = pstmt.executeUpdate(); myDebug.UpdateQuery = query; pstmt.close(); conn.commit(); conn.close(); } function PutBPDataInTable() { var pdcontent = $.request.body.asString(); // pdcontent = pdcontent.replace(/\"([^(\")\"]+)\":/g,"$1:"); var JbpObj = JSON.parse(pdcontent); var conn = $.db.getConnection(); var pstmt; var query; var vals = {}; var data = []; // var query2; // var output = {results: [] }; var mynextval = getnextval(); myDebug.mynextval = mynextval; try { // query = "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,TYPE,GROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)"; query = "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,ID_CRM,TYPE,BPGROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (" + mynextval + ",?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)"; // "INSERT INTO \"NICEPORTAL\".\"UO_CRM_DATA_BP\" (ID,ID_MSD,ID_CRM,TYPE,BPGROUP,SALUTATION,TITLE,NAME,SURNAME,PHONE,MOBILE_PHONE,EMAIL,ADDRESS_JSON,IBAN,BIC,SEPA_MANDATE_ID,SIGNATURE_DATE,ACCOUNT_OWNER,STREET,STREET_NO,ZIP_CODE,CITY,JSONRAW,CREATE_TS,UPDATE_TS) values (\"NICEPORTAL\".\"SEQ_CRMBP_ID\".NEXTVAL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP,CURRENT_TIMESTAMP)"; pstmt = conn.prepareStatement(query); pstmt.setString(1, JbpObj.id_msd.toString()); pstmt.setString(2, JbpObj.id_crm.toString()); pstmt.setString(3, JbpObj.type.toString()); pstmt.setString(4, JbpObj.group.toString()); pstmt.setString(5, JbpObj.salutation.toString()); pstmt.setString(6, JbpObj.title.toString()); pstmt.setString(7, JbpObj.name.toString()); pstmt.setString(8, JbpObj.surname.toString()); pstmt.setString(9, JbpObj.phone.toString()); pstmt.setString(10, JbpObj.mobile_phone.toString()); pstmt.setString(11, JbpObj.email.toString()); pstmt.setString(12, JSON.stringify(JbpObj.addresses)); pstmt.setString(13, JbpObj.bank_account.iban.toString()); pstmt.setString(14, JbpObj.bank_account.bic.toString()); pstmt.setString(15, JbpObj.bank_account.sepa_mandate_id.toString()); pstmt.setString(16, JbpObj.bank_account.signature_date.toString()); pstmt.setString(17, JbpObj.bank_account.account_owner.toString()); pstmt.setString(18, JbpObj.bank_account.street.toString()); pstmt.setString(19, JbpObj.bank_account.street_no.toString()); pstmt.setString(20, JbpObj.bank_account.zip_code.toString()); pstmt.setString(21, JbpObj.bank_account.city.toString()); pstmt.setString(22, JSON.stringify(JbpObj)); var rs = pstmt.executeUpdate(); pstmt.close(); conn.commit(); conn.close(); outMsg = {}; outMsg.method = "insertDB"; outMsg.status = "success"; outMessages.push(outMsg); var searchparam = {}; searchparam.key = "U_EON_ID_CRM_INTERNAL"; searchparam.value = JbpObj.id_msd.toString(); //var bpObj = buildBPObj(JbpObj); var retUpsertBP = upsBP(searchparam, JbpObj); //var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj),JbpObj); //var retUpsertBP = upsertBP(searchparam, JSON.stringify(bpObj)); //var retUpsertBP = addBP(JSON.stringify(bpObj)); } catch (e) { // push last outMsg if missing if (outMsg.method && outMessages.indexOf(outMsg) === -1) { outMsg.status = "canceled"; outMessages.push(outMsg); } outMsg = {}; outMsg.method = "exceptionHandler"; outMsg.status = "error"; outMsg.message = e.toString(); if (ParDebug) { outMsg.exceptionInfo = {}; outMsg.exceptionInfo.name = e.name; outMsg.exceptionInfo.message = e.message; outMsg.exceptionInfo.fileName = e.fileName; outMsg.exceptionInfo.lineNumber = e.lineNumber; outMsg.exceptionInfo.columnNumber = e.columnNumber; outMsg.exceptionInfo.stack = e.stack; //outMsg.exceptionInfo.source = e.toSource(); } outMessages.push(outMsg); vals.status = 'error'; //vals.description = e.message; vals.messages = outMessages; if (ParDebug) { vals.debug = {}; vals.debug.statement = query; vals.debugInfo = myDebug; } // vals.group = JbpObj.group.toString(); // vals.bpobjekt = JSON.stringify(JbpObj); // vals.SLBPObj = JSON.stringify(bpObj); // vals.ResponsUPSER = JSON.stringify(retUpsertBP); // vals.CardCode = retUpsertBP.CardCode; //vals.mode = JSON.stringify(retUpsertBP.mode); data.push(vals); var errbody = JSON.stringify(data); setRESPONSE(mynextval, outMsg.status, errbody, outErrorMessages); $.response.contentType = 'application/json'; $.response.setBody(errbody); //$.response.status = $.net.http.INTERNAL_SERVER_ERROR; // auch bei Fehler HTTP Status 200, da der Response im CRM sonst evtl. nicht sauber verarbeitet wird $.response.status = $.net.http.OK; return; } vals.status = outStatus; //vals.description = 'Data accepted and proceeded'; vals.id_crm = JbpObj.id_crm.toString(); vals.id_msd = JbpObj.id_msd.toString(); vals.id_b1 = retUpsertBP.CardCode; vals.CardCode = retUpsertBP.CardCode; vals.messages = outMessages; setBPCardCode(mynextval, retUpsertBP.CardCode); //vals.RespnUPSERJ = JSON.stringify(retUpsertBP); if (ParDebug) { vals.debug = retUpsertBP; } //vals.mode = JSON.stringify(retUpsertBP.mode); data.push(vals); var okbody = JSON.stringify(data); setRESPONSE(mynextval, outMsg.status, okbody, JSON.stringify(outErrorMessages)); //var body = JSON.stringify(test); $.response.contentType = 'application/json'; $.response.setBody(okbody); $.response.status = $.net.http.OK; } function testmain() { var searchparam = {}; searchparam.key = "U_EON_ID_CRM"; searchparam.value = 'BP777888999x'; var bpObj = mockbuildBPObj(); var retUpsertBP = upsBP(searchparam, JSON.stringify(bpObj)); // setOutputMessage(); } //testmain(); // begin org var content = $.request.body.asString(); ParDebug = $.request.parameters.get('debug') && $.request.parameters.get('debug').toLowerCase() === "true"; PutBPDataInTable(); //ende org //SlLogin(); /*var req = 0; req = $.request.parameters.get('crmid'); if (!req){ output.error = "Invalid BP Request - " + req; $.response.status = $.net.http.OK; $.response.contentType = "application/json"; $.response.setBody(JSON.stringify(output)); }else{ //addBP(JSON.stringify(bpObj)); //updBP(JSON.stringify(bpObj)); //GetOrders(req); } */