Correct export of Delivery Unit EON_CRM_BP (4 files, replaces incomplete initial export)

This commit is contained in:
Thorsten Schmitz
2026-07-09 11:56:46 +02:00
parent 926dd739c0
commit 8e9302c2b1
4 changed files with 80 additions and 73 deletions
@@ -11,7 +11,7 @@ create column table "INTEGRATION_DATA"."BANKS_SCHEMA"( "COUNTRY" VARCHAR (3) nul
"LENGTH" SMALLINT null,
"START" SMALLINT null,
"FULLLENGHTH" SMALLINT null);
truncate table "INTEGRATION_DATA"."BANKS_SCHEMA" ;
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('GB',6,9,22);
@@ -31,68 +31,73 @@ insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('SE',4,5,24);
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('PL',8,5,28);
insert into "INTEGRATION_DATA"."BANKS_SCHEMA" values('LT',5,5,20);
ALTER FUNCTION "INTEGRATION_DATA".EON_BP_GETBANKDETAILS (IBAN NVARCHAR(100))
RETURNS TABLE
(
IBAN NVARCHAR(100),
COUNTRY NVARCHAR(2),
BANKCODE NVARCHAR(10),
BANKNAME NVARCHAR(250),
IBAN NVARCHAR(100),
COUNTRY NVARCHAR(2),
BANKCODE NVARCHAR(10),
BANKNAME NVARCHAR(250),
SWIFTNO NVARCHAR(100),
ACCOUNT NVARCHAR(100)
)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
BEGIN
AS
BEGIN
-- USING SQLSCRIPT_PRINT as LIB;
DECLARE IBAN_BANKCODE VARCHAR(10) ;
DECLARE IBAN_COUNTRY VARCHAR(2) ;
DECLARE STARTPARAM SMALLINT = 1;
DECLARE LENGTHPARAM SMALLINT = 1;
DECLARE BANKNAMEPARAM NVARCHAR(250);
DECLARE BANKNAMEPARAM NVARCHAR(250);
DECLARE SWIFTNOPARAM NVARCHAR(100) = '';
DECLARE ACCOUNT_PARAM NVARCHAR(100);
DECLARE ACCOUNT_PARAM NVARCHAR(100);
IBAN := REPLACE(:IBAN,' ','');
IBAN_COUNTRY := SUBSTRING (:IBAN, 1, 2);
SELECT "START" into STARTPARAM DEFAULT 1 FROM "INTEGRATION_DATA"."BANKS_SCHEMA" WHERE COUNTRY = :IBAN_COUNTRY;
SELECT "LENGTH" into LENGTHPARAM DEFAULT 1 FROM "INTEGRATION_DATA"."BANKS_SCHEMA" WHERE COUNTRY = :IBAN_COUNTRY;
IBAN_BANKCODE := SUBSTRING (:IBAN, :STARTPARAM, :LENGTHPARAM);
ACCOUNT_PARAM := SUBSTRING(:IBAN, :STARTPARAM + :LENGTHPARAM);
SELECT TOP 1 "BANKNAME" into BANKNAMEPARAM DEFAULT ''
FROM "INTEGRATION_DATA"."BANKS"
FROM "INTEGRATION_DATA"."BANKS"
WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE
ORDER BY SWIFTNO DESC ;
SELECT TOP 1 "SWIFTNO" into SWIFTNOPARAM DEFAULT ''
FROM "INTEGRATION_DATA"."BANKS"
FROM "INTEGRATION_DATA"."BANKS"
WHERE COUNTRYCODE = :IBAN_COUNTRY AND BANKCODE = :IBAN_BANKCODE
ORDER BY SWIFTNO DESC ;
RETURN
SELECT :IBAN as IBAN, :IBAN_COUNTRY as COUNTRY, :IBAN_BANKCODE AS BANKCODE, LEFT(:BANKNAMEPARAM, 250) as BANKNAME, :SWIFTNOPARAM as SWIFTNO,
:ACCOUNT_PARAM as ACCOUNT
FROM DUMMY;
RETURN
SELECT :IBAN as IBAN,
:IBAN_COUNTRY as COUNTRY,
:IBAN_BANKCODE AS BANKCODE,
LEFT(:BANKNAMEPARAM, 250) as BANKNAME,
:SWIFTNOPARAM as SWIFTNO,
:ACCOUNT_PARAM as ACCOUNT
FROM DUMMY;
END;
/*
--SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS('GB19 REVO 00997000245823');
@@ -102,23 +107,23 @@ SELECT * FROM "INTEGRATION_DATA".EON_BP_GETBANKDETAILS('AT026000000001349870');
https://de.wikipedia.org/wiki/Internationale_Bankkontonummer#IBAN-Struktur_in_verschiedenen_L%C3%A4ndern
Depp bbbb bbbb kkkk kkkk kk
Osterreich ATpp bbbb bkkk kkkk kkkk
DEpp bbbb bbbb kkkk kkkk kk
Österreich ATpp bbbb bkkk kkkk kkkk
Schweiz CHpp bbbb bkkk kkkk kkkk k
Danemark DKpp bbbb kkkk kkkk kK
Dänemark DKpp bbbb kkkk kkkk kK
Niederlande NLpp bbbb kkkk kkkk kk
Belgien BEpp bbbk kkkk kkKK
Italien ITpp Kbbb bbss sssk kkkk kkkk kkk
Belgien BEpp bbbk kkkk kkKK
Italien ITpp Kbbb bbss sssk kkkk kkkk kkk
Luxemburg LUpp bbbk kkkk kkkk kkkk
Tschechien CZpp bbbb kkkk kkkk kkkk kkkk
Polen PLpp bbbs sssK kkkk kkkk kkkk kkkk
Polen PLpp bbbs sssK kkkk kkkk kkkk kkkk
Schweden SEpp bbbk kkkk kkkk kkkk kkkK
Frankreich FRpp bbbb bsss sskk kkkk kkkk kKK
LT Litauen 20 LTpp bbbb bkkk kkkk kkkk
Vereinigtes Konigreich (GB) GBpp bbbb ssss sskk kkkk kk
Vereinigtes Königreich (GB) GBpp bbbb ssss sskk kkkk kk
*/
@@ -35,4 +35,4 @@ CREATE COLUMN TABLE "NICEPORTAL"."UO_CRM_DATA_BP" ("ID" BIGINT CS_FIXED NOT NULL
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL ,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL ,
"ERROR_MESSAGE" VARCHAR(500),
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE;
PRIMARY KEY ("ID")) UNLOAD PRIORITY 5 AUTO MERGE;
+3 -2
View File
@@ -1,11 +1,11 @@
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slib = $.import("uniorg.ServiceLayer", "B1SLLogic");
var slfwlib = $.import("uniorg.ServiceLayer", "B1SLFramework");
var datetimelib = $.import("uniorg.libs", "datetime");
var logginglib = $.import("uniorg.libs", "uologging");
var slDest = $.import("uniorg.destinations", "uodestlib");
var bpmaplib = $.import("uniorg.eon.libs", "bpmapping");
var copybplib = $.import("uniorg.eon.libs", "copybp");
var ParDebug = false;
var mCardCode = "";
var output = {};
@@ -169,3 +169,4 @@ mCardCode = $.request.parameters.get('cardcode');
copyBPlib();
//PutBPDataInTable();
//ende org
+35 -34
View File
@@ -5,10 +5,10 @@
// 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-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
// 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)
@@ -17,7 +17,7 @@
// 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
// 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
@@ -121,9 +121,9 @@ function getCustRECACC(custpgnr) {
var rs = pstmt.executeQuery();
if (!rs.next()) {
// outMsg = {};
// outMsg.method = "getnexval from sequence error";
// outMsg.status = "error";
// outMsg = {};
// outMsg.method = "getnexval from sequence error";
// outMsg.status = "error";
// outMsg.message = e.message;
//outMessages.push(outMsg);
} else {
@@ -147,9 +147,9 @@ function getLanguageCode(ISOCODE) {
var rs = pstmt.executeQuery();
if (!rs.next()) {
// outMsg = {};
// outMsg.method = "getnexval from sequence error";
// outMsg.status = "error";
// outMsg = {};
// outMsg.method = "getnexval from sequence error";
// outMsg.status = "error";
// outMsg.message = e.message;
//outMessages.push(outMsg);
} else {
@@ -471,7 +471,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
{
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();
@@ -499,7 +499,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
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;
@@ -558,14 +558,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
//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].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.AddressName2 = JbpObj.addresses[h].address2.toString();
// }
//mybpAdresses.TypeOfAddress = 'test';
@@ -665,7 +665,7 @@ function buildBPObj(JbpObj, SBOOBJ) {
// //bpObj.BPAddresses.push(myaddbpAdresses);
// }
// }
// //}
// //}
bpObj.ContactEmployees = [];
var myfoundCP = false;
@@ -731,14 +731,14 @@ function buildBPObj(JbpObj, SBOOBJ) {
if (JbpObj.bank_account.bic.toString() !== '') {
myBPBankAccounts.BICSwiftCode = JbpObj.bank_account.bic.toString();
}
else if (mySwiftNo.toString() !== '')
else if (mySwiftNo.toString() !== '')
{
myBPBankAccounts.BICSwiftCode = mySwiftNo.toString();
}
myBPBankAccounts.Country = myCountry;
myBPBankAccounts.BankCode = myBankCode;
myBPBankAccounts.AccountNo = myAccountNo;
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();
@@ -757,8 +757,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
}
//22.07.2024 BUS-7580
if (JbpObj.bank_account.sepa_mandate.toString() == 'Nein') {
bpObj.CollectionAuthorization = 'tNO';
}
bpObj.CollectionAuthorization = 'tNO';
}
}
bpObj.BankCountry = myCountry;
bpObj.DefaultBankCode = myBankCode;
@@ -786,8 +786,8 @@ function buildBPObj(JbpObj, SBOOBJ) {
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 = 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';
@@ -837,7 +837,7 @@ function upsBP(searchparam, JbpObj) {
var slError;
// SL LOGIN
// SL LOGIN
var response = slib.SLLogin(JSON.stringify(loginInfo), null, null);
// B1SESSION and ROUTEID cookies returned by Login
@@ -1032,6 +1032,7 @@ CBU 25.11.2022
outMsg.response = myDebug.responseUpdate;
outErrorMessages.push(outMsg);
}
outStatus = "error";
}
outMessages.push(outMsg);
if (outStatus !== "error" && checkSupplierExist(CardCode)) {
@@ -1143,7 +1144,7 @@ function setRESPONSE(tableid, respstatus, respmessage, errormessage) {
function PutBPDataInTable() {
var pdcontent = $.request.body.asString();
// pdcontent = pdcontent.replace(/\"([^(\")\"]+)\":/g,"$1:");
// pdcontent = pdcontent.replace(/\"([^(\")"]+)\":/g,"$1:");
var JbpObj = JSON.parse(pdcontent);
var conn = $.db.getConnection();
var pstmt;
@@ -1205,7 +1206,7 @@ function PutBPDataInTable() {
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));
//var retUpsertBP = addBP(JSON.stringify(bpObj));
} catch (e) {
// push last outMsg if missing
@@ -1306,15 +1307,15 @@ PutBPDataInTable();
/*var req = 0;
req = $.request.parameters.get('crmid');
if (!req){
output.error = "Invalid BP Request - " + req;
if (!req){
output.error = "Invalid BP Request - " + req;
$.response.status = $.net.http.OK;
$.response.contentType = "application/json";
$.response.contentType = "application/json";
$.response.setBody(JSON.stringify(output));
}else{
//addBP(JSON.stringify(bpObj));
//updBP(JSON.stringify(bpObj));
//GetOrders(req);
//GetOrders(req);
}
*/