Initial export of EON_EMOBILITY_VIRTA

This commit is contained in:
Thorsten Schmitz
2026-07-08 23:08:26 +02:00
parent 22e8e727a9
commit dafd956626
10 changed files with 446 additions and 3 deletions
+37
View File
@@ -0,0 +1,37 @@
EON_EMOBILITY_VIRTA (DU2) - File Manifest
==========================================
Total Files: 23 extracted from uniorg/eon/virta
META Directory (11 files):
1. V_CPO_CHARGES.sql
2. V_CPO_CHARGES_DUPLICATES.sql
3. V_EMP_TRANSACTIONS.sql
4. V_EMP_TRANSACTIONS_DUPLICATES.sql
5. alter_tables.sql
6. cpo_charges.sql
7. create_views.sql
8. emobility.sql
9. emobility_view_emp_v1_0.sql
10. emp_transactions.sql
11. stations.sql
V1 Directory (5 files):
12. VirtaAPI.xshttpdest
13. getcpotrans.xsjs
14. getemptrans.xsjs
15. reloadfields.xsjs
16. testhana.xsjs
V2 Directory (7 files):
17. VirtaAPI.xshttpdest
18. getcpotrans.xsjs
19. getemptrans.xsjs
20. getemptrans_old.xsjs
21. reloadfields.xsjs
22. setcpotrans.xsjs
23. setemptrans.xsjs
Export Date: 2026-07-08
Source System: HANA XS Repository
Delivery Unit: EON_EMOBILITY_VIRTA
+137
View File
@@ -0,0 +1,137 @@
CREATE VIEW "VIRTAPORTAL"."V_CPO_CHARGES" ( "CHECK_METHOD",
"CHECK_CONSUMED_WATTHOUR",
"CHECK_START_STOP",
"CHECK_DURATION",
"CDRID",
"UUID",
"STATIONUUID",
"EMPSELLERID",
"STARTTIME",
"STOPTIME",
"DURATION",
"WATTHOUR",
"AMOUNT",
"CURRENCY",
"METHOD",
"CREATED",
"RFID",
"STATION_ID",
"STATION_NAME",
"LOCATION_ID",
"LOCATION_ADDRESS",
"LOCATION_CITY",
"LOCATION_TYPE",
"ROAMINGEMPID",
"EVCOID",
"ORGANIZATIONID",
"FULLEVSEID",
"EVSEID",
"PLUGTYPE",
"EMPSHARE",
"SIGNEDMETERVALUEBEGIN",
"SIGNEDMETERVALUEEND",
"FREECHARGING",
"CONNECTORID",
"METERSTART",
"METERSTOP",
"NOTES",
"MILEAGE",
"CREATE_TS",
"UPDATE_TS",
"STATUS",
"BILLING",
"KWHNETPRICE",
"MINUTENETPRICE",
"SESSIONNETPRICE",
"EICHRECHTTYPE",
"CREATE_USER",
"UPDATE_USER",
"FULLEVSEID_REDUCED" ) AS WITH "CHARGEPOINT_CONTRACTS" AS (SELECT
DISTINCT T1.U_DATA_TEXT AS CHARGEPOINT
FROM "A19753_EON_P01"."@EON_CONTRACT" T0
INNER JOIN "A19753_EON_P01"."@EON_CONTRACT_PARAM" T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T1.U_COMPONENT = 'CHARGEPOINT'
AND T0."Canceled"='N') select
/* CASE WHEN CONTRACT.CHARGEPOINT IS NULL
THEN 'NOCONTACT'
else 'OK'
END as CHECK_CONTRACT_EXISTS,
*/ CASE WHEN METHOD IN ('rfid',
'onetime',
'app')
THEN 'OK' WHEN METHOD IN ( 'auth_not_required_ocpp')
AND "RFID" NOT IN ('NOA',
'NOA:',
'0',
'zero',
'00',
'000',
'00000',
'00000000',
'00000000000000',
'000' )
THEN 'OK'
ELSE 'OTHER'
END AS CHECK_METHOD ,
CASE WHEN WATTHOUR > 120000
THEN 'INVALID' WHEN WATTHOUR = 0
THEN 'SMALL'
ELSE 'OK'
END as "CHECK_CONSUMED_WATTHOUR",
CASE WHEN STARTTIME IS NULL
THEN 'NULL' WHEN STARTTIME = STOPTIME
THEN 'EQUAL' WHEN STOPTIME < STARTTIME
THEN 'INVALID'
ELSE 'OK'
END AS "CHECK_START_STOP",
CASE WHEN DURATION IS NULL
THEN 'NULL' WHEN DURATION <= 2
THEN 'SMALL'
ELSE 'OK'
END AS "CHECK_DURATION",
"CDRID",
"UUID",
"STATIONUUID",
"EMPSELLERID",
"STARTTIME",
"STOPTIME",
"DURATION",
"WATTHOUR",
"AMOUNT",
"CURRENCY",
"METHOD",
"CREATED",
"RFID",
"STATION_ID",
"STATION_NAME",
"LOCATION_ID",
"LOCATION_ADDRESS",
"LOCATION_CITY",
"LOCATION_TYPE",
"ROAMINGEMPID",
"EVCOID",
"ORGANIZATIONID",
"FULLEVSEID",
"EVSEID",
"PLUGTYPE",
"EMPSHARE",
"SIGNEDMETERVALUEBEGIN",
"SIGNEDMETERVALUEEND",
"FREECHARGING",
"CONNECTORID",
"METERSTART",
"METERSTOP",
"NOTES",
"MILEAGE",
"CREATE_TS",
"UPDATE_TS",
"STATUS",
"BILLING",
"KWHNETPRICE",
"MINUTENETPRICE",
"SESSIONNETPRICE",
"EICHRECHTTYPE",
"CREATE_USER",
"UPDATE_USER",
"FULLEVSEID_REDUCED"
from "VIRTAPORTAL"."CPO_CHARGES" CHARGES WITH READ ONLY
@@ -0,0 +1,85 @@
CREATE VIEW "VIRTAPORTAL"."V_CPO_CHARGES_DUPLICATES" ( "UUID",
"CDRID",
"CREATED",
"FULLEVSEID",
"STARTTIME",
"STOPTIME",
"WATTHOUR",
"DURATION",
"FREECHARGING",
"CREATE_TS",
"UPDATE_TS",
"RANK" ) AS WITH "CHARGEPOINT_CONTRACTS" AS (SELECT
DISTINCT T1.U_DATA_TEXT AS CHARGEPOINT
FROM "A19753_EON_P01"."@EON_CONTRACT" T0
INNER JOIN "A19753_EON_P01"."@EON_CONTRACT_PARAM" T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T1.U_COMPONENT = 'CHARGEPOINT'
AND T0."Canceled"='N'),
"CHARGES_VALID" AS (SELECT
UUID,
CDRID,
CREATED,
COALESCE(FULLEVSEID,
STATIONUUID) AS FULLEVSEID,
STARTTIME,
STOPTIME ,
WATTHOUR,
DURATION,
"FREECHARGING",
CREATE_TS,
UPDATE_TS
FROM "VIRTAPORTAL"."V_CPO_CHARGES" AS EMPT
WHERE CHECK_CONSUMED_WATTHOUR = 'OK'
AND CHECK_START_STOP = 'OK'
AND CHECK_DURATION = 'OK'
AND UPDATE_TS > '20230101'
and exists (select
1
from "CHARGEPOINT_CONTRACTS" C
where EMPT.FULLEVSEID_REDUCED = C.CHARGEPOINT
OR EMPT.STATION_ID = C.CHARGEPOINT)),
"HAVING_DUPLICATES" AS (SELECT
FULLEVSEID,
STARTTIME,
COUNT(*) AS DUPLICATES
FROM CHARGES_VALID
GROUP BY FULLEVSEID,
STARTTIME HAVING COUNT(*) > 1),
"DUPLICATE_EMP_TRANSACTIONS_WITH_RANK" AS (SELECT
"V"."UUID" ,
"V"."CDRID" ,
"V"."CREATED" ,
"V"."FULLEVSEID" ,
"V"."STARTTIME" ,
"V"."STOPTIME" ,
"V"."WATTHOUR" ,
"V"."DURATION" ,
"V"."FREECHARGING" ,
"V"."CREATE_TS" ,
"V"."UPDATE_TS" ,
RANK() OVER ( PARTITION BY FULLEVSEID,
STARTTIME
ORDER BY WATTHOUR DESC,
CDRID DESC ) AS Rank
FROM CHARGES_VALID V
WHERE EXISTS (SELECT
1
FROM HAVING_DUPLICATES D
WHERE D.FULLEVSEID = V.FULLEVSEID
AND D.STARTTIME = V.STARTTIME )) SELECT
"V"."UUID" ,
"V"."CDRID" ,
"V"."CREATED" ,
"V"."FULLEVSEID" ,
"V"."STARTTIME" ,
"V"."STOPTIME" ,
"V"."WATTHOUR" ,
"V"."DURATION" ,
"V"."FREECHARGING" ,
"V"."CREATE_TS" ,
"V"."UPDATE_TS" ,
"V"."RANK"
FROM DUPLICATE_EMP_TRANSACTIONS_WITH_RANK V
ORDER BY V.STARTTIME DESC ,
V.FULLEVSEID,
V.RANK WITH READ ONLY
+30
View File
@@ -5,9 +5,39 @@ ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("KWHNETPRICE" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("MINUTENETPRICE" INTEGER CS_INT); ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("MINUTENETPRICE" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("SESSIONNETPRICE" INTEGER CS_INT); ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("SESSIONNETPRICE" INTEGER CS_INT);
-- Felder müssen noch im Interface gemappt werden -- Felder müssen noch im Interface gemappt werden
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("KWHGROSSPRICE" INTEGER CS_INT); ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("KWHGROSSPRICE" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("MINUTEGROSSPRICE" INTEGER CS_INT); ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("MINUTEGROSSPRICE" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("SESSIONGROSSPRICE" INTEGER CS_INT); ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("SESSIONGROSSPRICE" INTEGER CS_INT);
-- Mapping von CPOOPERATORID übernehmen -- Mapping von CPOOPERATORID übernehmen
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("CPOOPERATORID" NVARCHAR(50)); ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("CPOOPERATORID" NVARCHAR(50));
--Neu 26.08.2021 Laden im Ausland Erweiterung
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("LOCATION_COUNTRY" NVARCHAR(3));
--Neu 20.04.2022 Neue PlausiCheckFelder
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("BUSINESSVALIDATIONRESULT" NVARCHAR(100));
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("TECHVALIDATIONRESULT" NVARCHAR(100));
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("NOTBILLABLEREASON" NVARCHAR(200));
--Neu 05.06.2023
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD ("FREEMINUTES" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD ("KWHNETPRICE" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD ("MINUTENETPRICE" INTEGER CS_INT);
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD ("SESSIONNETPRICE" INTEGER CS_INT);
-- Schlumpf :o)
--04_05_2021
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD ("BUSINESSVALIDATIONRESULT" NVARCHAR(100));
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD ("TECHVALIDATIONRESULT" NVARCHAR(100));
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD ("NOTBILLABLEREASON" NVARCHAR(200));
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" add ("FULLEVSEID_REDUCED" NVARCHAR(5000) AS IFNULL("substr_regex"("FULLEVSEID",
'^(.*)(\*\d)$',
1,
1,
1,
''),
"FULLEVSEID"))
;
+61
View File
@@ -0,0 +1,61 @@
--drop table "VIRTAPORTAL"."CPO_CHARGES";
CREATE COLUMN TABLE "VIRTAPORTAL"."CPO_CHARGES"(
"CDRID" NVARCHAR(50) NOT NULL,
"UUID" NVARCHAR(50),
"STATIONUUID" NVARCHAR(50),
"EMPSELLERID" BIGINT CS_FIXED,
"STARTTIME" NVARCHAR(50),
"STOPTIME" NVARCHAR(50),
"DURATION" INTEGER CS_INT,
"WATTHOUR" INTEGER CS_INT,
"AMOUNT" INTEGER CS_INT,
"CURRENCY" NVARCHAR(3),
"METHOD" NVARCHAR(50),
"CREATED" NVARCHAR(50),
"RFID" NVARCHAR(50),
"STATION" NCLOB MEMORY THRESHOLD 1000,
"STATION_ID" NVARCHAR(50),
"STATION_NAME" NVARCHAR(100),
"LOCATION_ID" INTEGER CS_INT,
"LOCATION_ADDRESS" NVARCHAR(100),
"LOCATION_CITY" NVARCHAR(100),
"LOCATION_TYPE" NVARCHAR(50),
"ROAMINGEMPID" NVARCHAR(50),
"EVCOID" NVARCHAR(100),
"ORGANIZATIONID" NVARCHAR(50),
"FULLEVSEID" NVARCHAR(50),
"EVSEID" NVARCHAR(50),
"PLUGTYPE" NVARCHAR(50),
"EMPSHARE" INTEGER CS_INT,
"SIGNEDMETERVALUEBEGIN" NVARCHAR(50),
"SIGNEDMETERVALUEEND" NVARCHAR(50),
"FREECHARGING" NVARCHAR(3),
"CONNECTORID" INTEGER CS_INT,
"METERSTART" INTEGER CS_INT,
"METERSTOP" INTEGER CS_INT,
"NOTES" NVARCHAR(500),
"MILEAGE" INTEGER CS_INT,
"JSONRAW" NCLOB MEMORY THRESHOLD 1000,
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL,
"STATUS" VARCHAR(1) DEFAULT 'N',
"BILLING" VARCHAR(1) DEFAULT 'Y',
PRIMARY KEY (
"CDRID"
)
)
UNLOAD PRIORITY 5 AUTO MERGE;
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD (
"CREATE_USER" NVARCHAR(50) DEFAULT CURRENT_USER NOT NULL
);
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ADD (
"UPDATE_USER" NVARCHAR(50) DEFAULT CURRENT_USER NOT NULL
);
ALTER TABLE "VIRTAPORTAL"."CPO_CHARGES" ALTER (
"FULLEVSEID_REDUCED" NVARCHAR(5000) AS NULLIF("substr_regex"("FULLEVSEID", '^(.*)(\\*\\d)$', 1, 1, 1, ''), "FULLEVSEID")
);
@@ -0,0 +1,68 @@
-- V1.1 (2022-11-04)
--DROP TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS";
CREATE COLUMN TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS"(
"UUID" NVARCHAR(50) NOT NULL,
"CDRID" NVARCHAR(50),
"STATIONUUID" NVARCHAR(50),
"CUSTOMERID" BIGINT CS_FIXED,
"STARTTIME" NVARCHAR(50),
"STOPTIME" NVARCHAR(50),
"DURATION" INTEGER CS_INT,
"WATTHOUR" INTEGER CS_INT,
"AMOUNT" INTEGER CS_INT,
"CURRENCY" NVARCHAR(3),
"TRANSACTIONTYPE" NVARCHAR(50),
"CREATED" NVARCHAR(50),
"RFID" NVARCHAR(50),
"STATION" NCLOB MEMORY THRESHOLD 1000,
"STATION_ID" NVARCHAR(50),
"STATION_NAME" NVARCHAR(100),
"LOCATION_ID" INTEGER CS_INT,
"LOCATION_ADDRESS" NVARCHAR(100),
"LOCATION_CITY" NVARCHAR(100),
"LOCATION_TYPE" NVARCHAR(50),
"CUSTOMERGROUPID" NVARCHAR(50),
"CUSTOMERGROUPNAME" NVARCHAR(100),
"ORGANIZATIONID" NVARCHAR(50),
"PAYMENTTYPE" NVARCHAR(50),
"EVSEID" NVARCHAR(50),
"PLUGTYPE" NVARCHAR(50),
"EMPSHARE" INTEGER CS_INT,
"SIGNEDMETERVALUEBEGIN" NVARCHAR(50),
"SIGNEDMETERVALUEEND" NVARCHAR(50),
"OPERATORPRICE" INTEGER CS_INT,
"OPERATORCURRENCY" NVARCHAR(3),
"OPERATORID" INTEGER CS_INT,
"FREECHARGING" NVARCHAR(3),
"EMPTARIFFID" INTEGER CS_INT,
"EMPTARIFFNAME" NVARCHAR(100),
"FULLEVSEID" NVARCHAR(50),
"METERSTART" INTEGER CS_INT,
"METERSTOP" INTEGER CS_INT,
"NOTES" NVARCHAR(500),
"MILEAGE" INTEGER CS_INT,
"JSONRAW" NCLOB MEMORY THRESHOLD 1000,
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL,
"STATUS" VARCHAR(1) DEFAULT 'N',
"BILLING" VARCHAR(1) DEFAULT 'Y',
PRIMARY KEY (
"UUID"
)
)
UNLOAD PRIORITY 5 AUTO MERGE;
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ALTER (
"EMPTARIFFNAME" NVARCHAR(100)
);
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD (
"CREATE_USER" NVARCHAR(50) DEFAULT CURRENT_USER NOT NULL
);
ALTER TABLE "VIRTAPORTAL"."EMP_TRANSACTIONS" ADD (
"UPDATE_USER" NVARCHAR(50) DEFAULT CURRENT_USER NOT NULL
);
+21
View File
@@ -0,0 +1,21 @@
--erstmal nicht benötigt
DROP TABLE "VIRTAPORTAL"."STATIONS";
CREATE COLUMN TABLE "VIRTAPORTAL"."STATIONS"(
"ID" NVARCHAR(50) NOT NULL,
"IDENTITY" NVARCHAR(50),
"NAME" NVARCHAR(50),
"ADDRESS" NVARCHAR(50),
"CITY" NVARCHAR(50),
"LAT" NVARCHAR(50),
"LNG" NVARCHAR(50),
"LOCATIONTYPE" INTEGER CS_INT,
"JSONRAW" NCLOB MEMORY THRESHOLD 1000,
"CREATE_TS" LONGDATE CS_LONGDATE DEFAULT CURRENT_TIMESTAMP NOT NULL,
"UPDATE_TS" LONGDATE CS_LONGDATE NOT NULL,
"STATUS" VARCHAR(1) DEFAULT 'N',
"BILLING" VARCHAR(1) DEFAULT 'Y',
PRIMARY KEY (
"ID"
)
)
UNLOAD PRIORITY 5 AUTO MERGE;
+4
View File
@@ -0,0 +1,4 @@
var body = JSON.stringify('Hello e.on!');
$.response.contentType = 'application/json';
$.response.setBody(body);
$.response.status = $.net.http.OK;