Optima Groovy-Hooks hinzugefügt
This commit is contained in:
744
Optima/_Groovy/ValueSets_Translation.groovy
Normal file
744
Optima/_Groovy/ValueSets_Translation.groovy
Normal file
@@ -0,0 +1,744 @@
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
// ValueSets_Common.groovy
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Grrovy Wertemengen Übersetzungen
|
||||
//
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
//
|
||||
// Historie:
|
||||
// 26.06.2017 phoer/dvelop Erste Version zur Umstellung der dynamischen Wertemengen und Übersetzung
|
||||
//
|
||||
// --------------------------------------------------------------------------------------------------------
|
||||
|
||||
import com.dvelop.d3.server.Entrypoint;
|
||||
import com.dvelop.d3.server.core.D3Interface;
|
||||
import com.dvelop.d3.server.Document;
|
||||
import com.dvelop.d3.server.User;
|
||||
import com.dvelop.d3.server.DocumentType;
|
||||
import com.dvelop.d3.server.RepositoryField;
|
||||
import com.dvelop.d3.server.UserOrUserGroup;
|
||||
import com.dvelop.d3.server.ValueSet;
|
||||
import com.dvelop.d3.server.ValueSetTranslation;
|
||||
import com.dvelop.d3.server.Validation;
|
||||
import com.dvelop.d3.server.Translation;
|
||||
import com.dvelop.d3.server.*;
|
||||
|
||||
// zusätzliche Imports für oData Zugriff 21.01.2019
|
||||
import java.io.InputStreamReader;
|
||||
import java.io.Reader;
|
||||
import java.net.URL;
|
||||
import java.net.URLConnection;
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSession;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
import java.security.cert.X509Certificate;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONObject;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import groovy.sql.GroovyRowResult;
|
||||
import groovy.io.FileType;
|
||||
|
||||
|
||||
class ValueSets_Translation
|
||||
{
|
||||
|
||||
@ValueSetTranslation(entrypoint="SubjectValues")
|
||||
def SubjectValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
def lang = transl.locale.language
|
||||
|
||||
d3.log.info("Groovy - ValueSets: start SubjectValueTranslation " + lang + " - locale: " + transl.locale);
|
||||
|
||||
if( lang == "de" ) {
|
||||
lang = "DEU"
|
||||
} else if( lang == "en" ) {
|
||||
lang = "ENG"
|
||||
}
|
||||
|
||||
// IMUE 26.08.2019 neue Wertemenge bei Umstellung auf Schlüssel statt LangKey
|
||||
// NEU = def lSQL = """select fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as ShortKey, value_char as TransVal
|
||||
// ALT = def lSQL = """select fs.dok_dat_feld_${Const.gDDF_ORGENTRY} as LangKey, value_char as TransVal
|
||||
|
||||
def lSQL = """select fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as ShortKey, value_char as TransVal
|
||||
from firm_spez_mult_val as mv
|
||||
join firmen_spezifisch as fs on fs.doku_id = mv.doku_id
|
||||
where field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
and mv.doku_id in (
|
||||
select doku_id
|
||||
from firmen_spezifisch
|
||||
where kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
AND dok_dat_feld_${Const.gDFF_SCHLUESSEL} like 'AK%' )
|
||||
and row_number in (
|
||||
select row_number
|
||||
from firm_spez_mult_val as mv, firmen_spezifisch as fs
|
||||
where value_char like '${lang}%'
|
||||
and mv.field_no = '${Const.gDDF_ISOCODE}'
|
||||
and fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
and fs.doku_id = mv.doku_id )""";
|
||||
|
||||
def resultlist = d3.sql.executeAndGet( lSQL );
|
||||
|
||||
d3.log.info("Es wurden " + resultlist.size() + " Eintraege gefunden!");
|
||||
|
||||
for ( def i = 0; i < resultlist.size(); i++ ) {
|
||||
transl.set( resultlist.get(i).get("ShortKey"), resultlist.get(i).get("TransVal") );
|
||||
}
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="MProjNumValues")
|
||||
def getMProjNumValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
def lang = transl.locale.language
|
||||
|
||||
if ( lang != "DEU" ) {
|
||||
transl.set( "keine Submission", "No Submission" );
|
||||
}
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="DokumentuntergruppeValues")
|
||||
def DokumentuntergruppeValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
def lang = transl.locale.language
|
||||
|
||||
d3.log.info("Groovy - ValueSets: start DokumentuntergruppeValueTranslation " + lang + " - locale: " + transl.locale);
|
||||
if( lang == "de" ) {
|
||||
lang = "DEU"
|
||||
} else if( lang == "en" ) {
|
||||
lang = "ENG"
|
||||
}
|
||||
|
||||
|
||||
// IMUE 05.03.2019 neue Wertemenge bei Umstellung auf Schlüssel statt LangKey
|
||||
// ALT = def lSQL = """select fs.dok_dat_feld_${Const.gDDF_ORGENTRY} as LangKey, value_char as TransVal
|
||||
|
||||
def lSQL = """select fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as ShortKey, value_char as TransVal
|
||||
from firm_spez_mult_val as mv
|
||||
join firmen_spezifisch as fs on fs.doku_id = mv.doku_id
|
||||
where field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
and mv.doku_id in (
|
||||
select doku_id
|
||||
from firmen_spezifisch
|
||||
where kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
AND dok_dat_feld_${Const.gDFF_SCHLUESSEL} like 'DG%' )
|
||||
and row_number in (
|
||||
select row_number
|
||||
from firm_spez_mult_val as mv, firmen_spezifisch as fs
|
||||
where value_char like '${lang}%'
|
||||
and field_no = '${Const.gDDF_ISOCODE}'
|
||||
and fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
and fs.doku_id = mv.doku_id )""";
|
||||
|
||||
def resultlist = d3.sql.executeAndGet( lSQL );
|
||||
|
||||
d3.log.info("Es wurden " + resultlist.size() + " Eintraege gefunden!");
|
||||
|
||||
for ( def i = 0; i < resultlist.size(); i++ )
|
||||
{
|
||||
// IMUE 05.03.2019 neue Wertemenge bei Umstellung auf Schlüssel statt LangKey
|
||||
// Alt = transl.set( resultlist.get(i).get("LangKey"), resultlist.get(i).get("TransVal") );
|
||||
transl.set( resultlist.get(i).get("ShortKey"), resultlist.get(i).get("TransVal") );
|
||||
}
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="ProzessValues")
|
||||
def ProzessValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
def lang = transl.locale.language
|
||||
|
||||
d3.log.info("Groovy - ValueSets: start ProzessValuesTranslation " + lang + " - locale: " + transl.locale);
|
||||
|
||||
if( lang == "de" ) {
|
||||
lang = "DEU"
|
||||
} else if( lang == "en" ) {
|
||||
lang = "ENG"
|
||||
}
|
||||
|
||||
// IMUE 05.02.2019 - Folgendes Statement ergibt die Schlüssel und die jeweilige Übersetzung nach Prozessumbau
|
||||
def lSQL = """ SELECT fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as LangKey, mv.value_char as TransVal
|
||||
FROM firmen_spezifisch fs
|
||||
LEFT JOIN firm_spez_mult_val mv ON fs.doku_id = mv.doku_id
|
||||
LEFT JOIN firm_spez_mult_val mv2 ON fs.doku_id = mv2.doku_id AND mv.row_number = mv2.row_number
|
||||
WHERE fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
AND mv.field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
AND mv2.field_no = '${Const.gDDF_ISOCODE}'
|
||||
AND mv2.value_char LIKE '${lang}%'
|
||||
ORDER BY mv2.value_char asc """;
|
||||
|
||||
/*
|
||||
def lSQL = """select fs.dok_dat_feld_${Const.gDDF_ORGENTRY} as LangKey, value_char as TransVal
|
||||
from firm_spez_mult_val as mv
|
||||
join firmen_spezifisch as fs on fs.doku_id = mv.doku_id
|
||||
where field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
and mv.doku_id in (
|
||||
select doku_id
|
||||
from firmen_spezifisch
|
||||
where kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
AND dok_dat_feld_${Const.gDFF_SCHLUESSEL} like 'PZ%' )
|
||||
and row_number in (
|
||||
select row_number
|
||||
from firm_spez_mult_val as mv, firmen_spezifisch as fs
|
||||
where value_char like '${lang}%'
|
||||
and field_no = '${Const.gDDF_ISOCODE}'
|
||||
and fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
and fs.doku_id = mv.doku_id )""";
|
||||
*/
|
||||
|
||||
def resultlist = d3.sql.executeAndGet( lSQL );
|
||||
|
||||
d3.log.info("Es wurden " + resultlist.size() + " Eintraege gefunden!");
|
||||
|
||||
for ( def i = 0; i < resultlist.size(); i++ )
|
||||
{
|
||||
transl.set( resultlist.get(i).get("LangKey"), resultlist.get(i).get("TransVal") );
|
||||
}
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="ProzArtValues")
|
||||
def ProzArtValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
def lang = transl.locale.language
|
||||
|
||||
d3.log.info("Groovy - ValueSets: start ProzArtValuesTranslation " + lang + " - locale: " + transl.locale);
|
||||
|
||||
if( lang == "de" ) {
|
||||
lang = "DEU"
|
||||
} else if( lang == "en" ) {
|
||||
lang = "ENG"
|
||||
}
|
||||
|
||||
def lSQL = """ SELECT fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as LangKey, mv.value_char as TransVal
|
||||
FROM firmen_spezifisch fs
|
||||
LEFT JOIN firm_spez_mult_val mv ON fs.doku_id = mv.doku_id
|
||||
LEFT JOIN firm_spez_mult_val mv2 ON fs.doku_id = mv2.doku_id AND mv.row_number = mv2.row_number
|
||||
WHERE fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
AND mv.field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
AND mv2.field_no = '${Const.gDDF_ISOCODE}'
|
||||
AND mv2.value_char LIKE '${lang}%' """;
|
||||
|
||||
/*def lSQL = """select fs.dok_dat_feld_${Const.gDDF_ORGENTRY} as LangKey, value_char as TransVal
|
||||
from firm_spez_mult_val as mv
|
||||
join firmen_spezifisch as fs on fs.doku_id = mv.doku_id
|
||||
where field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
and mv.doku_id in (
|
||||
select doku_id
|
||||
from firmen_spezifisch
|
||||
where kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
AND dok_dat_feld_${Const.gDFF_SCHLUESSEL} like 'PA%' )
|
||||
and row_number in (
|
||||
select row_number
|
||||
from firm_spez_mult_val as mv, firmen_spezifisch as fs
|
||||
where value_char like '${lang}%'
|
||||
and field_no = '${Const.gDDF_ISOCODE}'
|
||||
and fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
and fs.doku_id = mv.doku_id )""";
|
||||
*/
|
||||
|
||||
def resultlist = d3.sql.executeAndGet( lSQL );
|
||||
|
||||
d3.log.info("Es wurden " + resultlist.size() + " Eintraege gefunden!");
|
||||
|
||||
for ( def i = 0; i < resultlist.size(); i++ )
|
||||
{
|
||||
transl.set( resultlist.get(i).get("LangKey"), resultlist.get(i).get("TransVal") );
|
||||
}
|
||||
}
|
||||
|
||||
// 07.2019 wird produktiv noch nicht genutzt
|
||||
@ValueSetTranslation(entrypoint="MachineDocumentModuls")
|
||||
def MachineDocumentsModulsTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
// Persistierung nur der eindeutigen ID - In der Wertemenge wird über die Translation "ID - Beschreibung" angezeigt"
|
||||
def lang = transl.locale.language
|
||||
lang = lang.toUpperCase();
|
||||
def fallbackLangEng = "EN";
|
||||
|
||||
/*
|
||||
// Create a trust manager that does not validate certificate chains -> entfernt 13.02.2019
|
||||
Dafür ist es erforderlich das Zertifikat in Java als vertrauenswürdig hinzuzufügen:
|
||||
cd D:\d3\d3server.prg\JRE\bin keytool.exe -import -keystore "D:\d3\d3server.prg\JRE\lib\security\cacerts" -file "E:\optima_group_ca.cer"
|
||||
*/
|
||||
|
||||
if(SystemSpecificConst.needCertificateCheck == false) {
|
||||
deactivateCertificateCheck();
|
||||
}
|
||||
|
||||
URL url = new URL( 'https://' + SystemSpecificConst.baseOdata + '/sap/opu/odata/sap/ZPS_MACHINE_MASTER_SRV/ModuleTextSet?$filter=Deleted%20eq%20false%20&$format=json');
|
||||
|
||||
try {
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
String userpass = SystemSpecificConst.lUserOdata + ":" + SystemSpecificConst.lPassOdata;
|
||||
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
|
||||
con.setRequestProperty ("Authorization", basicAuth);
|
||||
|
||||
InputStream is = con.getInputStream();
|
||||
String responseValue = IOUtils.toString(is, "UTF-8");
|
||||
is.close();
|
||||
|
||||
JSONObject obj = new JSONObject(responseValue);
|
||||
JSONArray arr = obj.get("d").getJSONArray("results");
|
||||
|
||||
List<String> guidList = new ArrayList<>();
|
||||
HashMap<String, JSONObject> guidJsonObMap = new HashMap<>();
|
||||
|
||||
if(arr.length() > 0) {
|
||||
for (int i = 0; i < arr.length(); i++) {
|
||||
JSONObject metadataObj = arr.getJSONObject(i);
|
||||
|
||||
// Eindeutige GUID einmalig holen
|
||||
String guid = metadataObj.getString("ModuleGUID");
|
||||
boolean exist = guidList.contains(guid);
|
||||
if(exist == false) {
|
||||
guidList.add(guid);
|
||||
}
|
||||
// Je GUID das JsonObject zwischernspeichern - Eine GUID ist nur je Sprache eindeutig, daher Zusammensetzung für den HashMap-Key notwendig
|
||||
String language = metadataObj.getString("LanguageSap");
|
||||
guidJsonObMap.put(guid + "_" + language, metadataObj);
|
||||
}
|
||||
} else {
|
||||
d3.log.error( " ## ValueSetTranslation for MachineDocumentModuls - JSONArray Size = 0 ") ;
|
||||
}
|
||||
|
||||
// für jede eindeutige GUID müssen die weiteren Informationen in der Anmeldesprache gefunden werden
|
||||
// wenn kein Ergebnis gefunden wurde - Fallback Englisch
|
||||
for(String guid : guidList) {
|
||||
JSONObject jsonTempOb = guidJsonObMap.get(guid + "_" + lang);
|
||||
// wenn es Informationen zu der GUID und der Anmeldesprache gibt
|
||||
if(jsonTempOb != null) {
|
||||
// Eindeutige ID holen
|
||||
String id = jsonTempOb.getString("Id");
|
||||
// Beschreibung holen
|
||||
String description = jsonTempOb.getString("Description");
|
||||
transl.set( guid, id + " - " + description);
|
||||
} else {
|
||||
// Fallback - gibt es keine Informationen in der Anmeldesprache, nehme Englisch
|
||||
JSONObject jsonTempObEng = guidJsonObMap.get(guid + "_" + fallbackLangEng);
|
||||
// Eindeutige ID holen
|
||||
String id = jsonTempObEng.getString("Id");
|
||||
// Beschreibung holen
|
||||
String description = jsonTempObEng.getString("Description");
|
||||
//d3.log.error( " ## ValueSetTranslation for MachineDocumentModuls - " + fallbackLangEng + " - " + guid + " - " + id + " - " + description);
|
||||
transl.set( guid, id + " - " + description);
|
||||
}
|
||||
}
|
||||
|
||||
} catch(Exception e) {
|
||||
d3.log.error( " ## ValueSetTranslation for MachineDocumentModuls - Exception = " + e.getMessage() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 07.2019 wird produktiv noch nicht genutzt
|
||||
@ValueSetTranslation(entrypoint="MachineDocumentFunctions")
|
||||
def MachineDocumentsFunctionsTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
// Persistierung nur der eindeutigen ID - In der Wertemenge wird über die Translation "ID - Beschreibung" angezeigt"
|
||||
def lang = transl.locale.language
|
||||
lang = lang.toUpperCase();
|
||||
def fallbackLangEng = "EN";
|
||||
|
||||
/*
|
||||
// Create a trust manager that does not validate certificate chains -> entfernt 13.02.2019
|
||||
Dafür ist es erforderlich das Zertifikat in Java als vertrauenswürdig hinzuzufügen:
|
||||
cd D:\d3\d3server.prg\JRE\bin keytool.exe -import -keystore "D:\d3\d3server.prg\JRE\lib\security\cacerts" -file "E:\optima_group_ca.cer"
|
||||
*/
|
||||
|
||||
if(SystemSpecificConst.needCertificateCheck == false) {
|
||||
deactivateCertificateCheck();
|
||||
}
|
||||
|
||||
// aktuell ist es noch nicht möglich ohne Filterung den oData Aufruf auszuführen
|
||||
URL url = new URL('https://' + SystemSpecificConst.baseOdata + '/sap/opu/odata/sap/ZPS_MACHINE_MASTER_SRV/FunctionTextSet?$filter=Deleted%20eq%20false%20&$format=json');
|
||||
|
||||
try {
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
String userpass = SystemSpecificConst.lUserOdata + ":" + SystemSpecificConst.lPassOdata;
|
||||
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
|
||||
con.setRequestProperty ("Authorization", basicAuth);
|
||||
|
||||
InputStream is = con.getInputStream();
|
||||
String responseValue = IOUtils.toString(is, "UTF-8");
|
||||
is.close();
|
||||
|
||||
JSONObject obj = new JSONObject(responseValue);
|
||||
JSONArray arr = obj.get("d").getJSONArray("results");
|
||||
|
||||
List<String> guidList = new ArrayList<>();
|
||||
HashMap<String, JSONObject> guidJsonObMap = new HashMap<>();
|
||||
|
||||
if(arr.length() > 0) {
|
||||
for (int i = 0; i < arr.length(); i++) {
|
||||
JSONObject metadataObj = arr.getJSONObject(i);
|
||||
|
||||
// Eindeutige GUID einmalig holen
|
||||
String guid = metadataObj.getString("FunctionGUID");
|
||||
boolean exist = guidList.contains(guid);
|
||||
if(exist == false) {
|
||||
guidList.add(guid);
|
||||
}
|
||||
// Je GUID das JsonObject zwischernspeichern - Eine GUID ist nur je Sprache eindeutig, daher Zusammensetzung für den HashMap-Key notwendig
|
||||
String language = metadataObj.getString("LanguageSap");
|
||||
guidJsonObMap.put(guid + "_" + language, metadataObj);
|
||||
}
|
||||
} else {
|
||||
d3.log.error( " ## ValueSetTranslation for MachineDocumentFunctions - JSONArray Size = 0 ") ;
|
||||
}
|
||||
|
||||
// für jede eindeutige GUID müssen die weiteren Informationen in der Anmeldesprache gefunden werden
|
||||
// wenn kein Ergebnis gefunden wurde - Fallback Englisch
|
||||
for(String guid : guidList) {
|
||||
JSONObject jsonTempOb = guidJsonObMap.get(guid + "_" + lang);
|
||||
// wenn es Informationen zu der GUID und der Anmeldesprache gibt
|
||||
if(jsonTempOb != null) {
|
||||
// Eindeutige ID holen
|
||||
String id = jsonTempOb.getString("Id");
|
||||
// Beschreibung holen
|
||||
String description = jsonTempOb.getString("Description");
|
||||
transl.set( guid, id + " - " + description);
|
||||
} else {
|
||||
// Fallback - gibt es keine Informationen in der Anmeldesprache, nehme Englisch
|
||||
JSONObject jsonTempObEng = guidJsonObMap.get(guid + "_" + fallbackLangEng);
|
||||
// Eindeutige ID holen
|
||||
String id = jsonTempObEng.getString("Id");
|
||||
// Beschreibung holen
|
||||
String description = jsonTempObEng.getString("Description");
|
||||
//d3.log.error( " ## ValueSetTranslation for MachineDocumentFunctions - " + fallbackLangEng + " - " + guid + " - " + id + " - " + description);
|
||||
transl.set( guid, id + " - " + description);
|
||||
}
|
||||
}
|
||||
|
||||
} catch(Exception e) {
|
||||
d3.log.error( " ## ValueSetTranslation for MachineDocumentFunctions - Exception = " + e.getMessage() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 07.2019 wird produktiv noch nicht genutzt
|
||||
@ValueSetTranslation(entrypoint="MachineDocumentMachineType")
|
||||
def MachineDocumentMachineTypeTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
// Persistierung nur der eindeutigen ID - In der Wertemenge wird über die Translation "ID - Beschreibung" angezeigt"
|
||||
def lang = transl.locale.language
|
||||
lang = lang.toUpperCase();
|
||||
|
||||
/*
|
||||
// Create a trust manager that does not validate certificate chains -> entfernt 13.02.2019
|
||||
Dafür ist es erforderlich das Zertifikat in Java als vertrauenswürdig hinzuzufügen:
|
||||
cd D:\d3\d3server.prg\JRE\bin keytool.exe -import -keystore "D:\d3\d3server.prg\JRE\lib\security\cacerts" -file "E:\optima_group_ca.cer"
|
||||
*/
|
||||
|
||||
if(SystemSpecificConst.needCertificateCheck == false) {
|
||||
deactivateCertificateCheck();
|
||||
}
|
||||
|
||||
URL url = new URL('https://' + SystemSpecificConst.baseOdata + '/sap/opu/odata/sap/ZPS_MACHINE_MASTER_SRV/MachineSimpleSet?$format=json');
|
||||
|
||||
try {
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
String userpass = SystemSpecificConst.lUserOdata + ":" + SystemSpecificConst.lPassOdata;
|
||||
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
|
||||
con.setRequestProperty ("Authorization", basicAuth);
|
||||
|
||||
InputStream is = con.getInputStream();
|
||||
String responseValue = IOUtils.toString(is, "UTF-8");
|
||||
is.close();
|
||||
|
||||
JSONObject obj = new JSONObject(responseValue);
|
||||
JSONArray arr = obj.get("d").getJSONArray("results");
|
||||
|
||||
for (int i = 0; i < arr.length(); i++)
|
||||
{
|
||||
JSONObject metadataObj = arr.getJSONObject(i);
|
||||
|
||||
// Eindeutige Id holen
|
||||
String id = metadataObj.getString("Id");
|
||||
|
||||
// Beschreibung holen
|
||||
String description = metadataObj.getString("Description");
|
||||
transl.set( id, id + " - " + description);
|
||||
|
||||
}
|
||||
|
||||
} catch(Exception e) {
|
||||
d3.log.error( " ## ValueSetTranslation for MachineDocumentModuls - Exception = " + e.getMessage() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="VorlagenProzArtValues")
|
||||
def VorlagenProzArtValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
def lang = transl.locale.language
|
||||
|
||||
if( lang == "de" ) {
|
||||
lang = "DEU"
|
||||
} else if( lang == "en" ) {
|
||||
lang = "ENG"
|
||||
}
|
||||
|
||||
def lSQL = """select fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as LangKey, value_char as TransVal
|
||||
from firm_spez_mult_val as mv
|
||||
join firmen_spezifisch as fs on fs.doku_id = mv.doku_id
|
||||
where field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
and mv.doku_id in (
|
||||
select doku_id
|
||||
from firmen_spezifisch
|
||||
where kue_dokuart = '${Const.gDTS_AZTXT}' )
|
||||
and row_number in (
|
||||
select row_number
|
||||
from firm_spez_mult_val as mv, firmen_spezifisch as fs
|
||||
where value_char like '${lang}%'
|
||||
and field_no = '${Const.gDDF_ISOCODE}'
|
||||
and fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
and fs.doku_id = mv.doku_id )""";
|
||||
|
||||
def resultlist = d3.sql.executeAndGet( lSQL );
|
||||
|
||||
for ( def i = 0; i < resultlist.size(); i++ )
|
||||
{
|
||||
transl.set( resultlist.get(i).get("LangKey"), resultlist.get(i).get("TransVal") );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="RegisterValues")
|
||||
def RegisterTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
//d3.log.error("RegisterValues Translation started");
|
||||
|
||||
def lang = transl.locale.language
|
||||
|
||||
// Erweiterte Eigenschaft Register hat die ID 51 und muss pro System geprüft werden
|
||||
def registerResultsetTransMan = d3.sql.executeAndGet("SELECT value_char_allowed, value_char_transl FROM dbo.doc_field_val_lang WHERE predef_value_id = 51");
|
||||
|
||||
|
||||
|
||||
if( lang == "de" ) {
|
||||
// manuelle Wertemenge
|
||||
for ( int i = 0; i < registerResultsetTransMan.size(); i++ ) {
|
||||
transl.set( registerResultsetTransMan.get(i).get("value_char_allowed"), registerResultsetTransMan.get(i).get("value_char_allowed") );
|
||||
}
|
||||
// dynamische Wertemenge
|
||||
def registerResultsetTransDyn = d3.sql.executeAndGet("SELECT fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as ShortKey, mv.value_char as ValueTrans FROM firmen_spezifisch fs LEFT JOIN firm_spez_mult_val mv ON fs.doku_id = mv.doku_id WHERE fs.kue_dokuart = '${Const.gDTS_AZTXT}' AND fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} LIKE 'DG%' AND field_no = ${Const.gDDF_UEBERSETZUNG} AND mv.row_number = 1");
|
||||
for ( int i = 0; i < registerResultsetTransDyn.size(); i++ ) {
|
||||
transl.set( registerResultsetTransDyn.get(i).get("ShortKey"), registerResultsetTransDyn.get(i).get("ValueTrans") );
|
||||
}
|
||||
} else if( lang == "en" ) {
|
||||
// manuelle Wertemenge
|
||||
for ( int i = 0; i < registerResultsetTransMan.size(); i++ ) {
|
||||
transl.set( registerResultsetTransMan.get(i).get("value_char_allowed"), registerResultsetTransMan.get(i).get("value_char_transl") );
|
||||
}
|
||||
// dynamische Wertemenge
|
||||
def registerResultsetTransDyn = d3.sql.executeAndGet("SELECT fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as ShortKey, mv.value_char as ValueTrans FROM firmen_spezifisch fs LEFT JOIN firm_spez_mult_val mv ON fs.doku_id = mv.doku_id WHERE fs.kue_dokuart = '${Const.gDTS_AZTXT}' AND fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} LIKE 'DG%' AND field_no = ${Const.gDDF_UEBERSETZUNG} AND mv.row_number = 2");
|
||||
for ( int i = 0; i < registerResultsetTransDyn.size(); i++ ) {
|
||||
transl.set( registerResultsetTransDyn.get(i).get("ShortKey"), registerResultsetTransDyn.get(i).get("ValueTrans") );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="OGValues")
|
||||
def OGValuesTranslation(D3Interface d3, Translation transl)
|
||||
{
|
||||
//def lang = transl.locale.language
|
||||
|
||||
//d3.log.info("Groovy - ValueSets: start OGValuesTranslation " + lang + " - locale: " + transl.locale);
|
||||
|
||||
//if( lang == "de" ) {
|
||||
//lang = "DEU"
|
||||
//} else if( lang == "en" ) {
|
||||
//lang = "ENG"
|
||||
//}
|
||||
|
||||
//def lSQL = """ SELECT fs.dok_dat_feld_${Const.gDFF_SCHLUESSEL} as LangKey, mv.value_char as TransVal
|
||||
// FROM firmen_spezifisch fs
|
||||
// LEFT JOIN firm_spez_mult_val mv ON fs.doku_id = mv.doku_id
|
||||
// LEFT JOIN firm_spez_mult_val mv2 ON fs.doku_id = mv2.doku_id AND mv.row_number = mv2.row_number
|
||||
// WHERE fs.kue_dokuart = '${Const.gDTS_AZTXT}'
|
||||
// AND mv.field_no = '${Const.gDDF_UEBERSETZUNG}'
|
||||
// AND mv2.field_no = '${Const.gDDF_ISOCODE}'
|
||||
// AND mv2.value_char LIKE '${lang}%' """;
|
||||
|
||||
//def resultlist = d3.sql.executeAndGet( lSQL );
|
||||
|
||||
//d3.log.info("Es wurden " + resultlist.size() + " Eintraege gefunden!");
|
||||
|
||||
//for ( def i = 0; i < resultlist.size(); i++ )
|
||||
//{
|
||||
// transl.set( resultlist.get(i).get("LangKey"), resultlist.get(i).get("TransVal") );
|
||||
//}
|
||||
|
||||
// Persistierung nur der eindeutigen ID - In der Wertemenge wird über die Translation "ID - Beschreibung" angezeigt"
|
||||
def lang = transl.locale.language
|
||||
lang = lang.toUpperCase();
|
||||
|
||||
/*
|
||||
// Create a trust manager that does not validate certificate chains -> entfernt 13.02.2019
|
||||
Dafür ist es erforderlich das Zertifikat in Java als vertrauenswürdig hinzuzufügen:
|
||||
cd D:\d3\d3server.prg\JRE\bin keytool.exe -import -keystore "D:\d3\d3server.prg\JRE\lib\security\cacerts" -file "E:\optima_group_ca.cer"
|
||||
*/
|
||||
|
||||
if(SystemSpecificConst.needCertificateCheck == false) {
|
||||
deactivateCertificateCheck();
|
||||
}
|
||||
|
||||
URL url = new URL('https://' + SystemSpecificConst.baseOdata + '/sap/opu/odata/sap/ZCA_D3_AUTHORIZATIONS_SRV/OrgUnitSet?$format=json');
|
||||
|
||||
try {
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
String userpass = SystemSpecificConst.lUserOdata + ":" + SystemSpecificConst.lPassOdata;
|
||||
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
|
||||
con.setRequestProperty ("Authorization", basicAuth);
|
||||
|
||||
InputStream is = con.getInputStream();
|
||||
String responseValue = IOUtils.toString(is, "UTF-8");
|
||||
is.close();
|
||||
|
||||
JSONObject obj = new JSONObject(responseValue);
|
||||
JSONArray arr = obj.get("d").getJSONArray("results");
|
||||
|
||||
for (int i = 0; i < arr.length(); i++)
|
||||
{
|
||||
JSONObject metadataObj = arr.getJSONObject(i);
|
||||
|
||||
// Eindeutige Id holen
|
||||
String id = metadataObj.getString("Id");
|
||||
|
||||
// Beschreibung holen
|
||||
String description = metadataObj.getString("DisplayName");
|
||||
transl.set( id, description);
|
||||
|
||||
}
|
||||
|
||||
} catch(Exception e) {
|
||||
d3.log.error( " ## ValueSetTranslation for OGValuesTranslation - Exception = " + e.getMessage() );
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="BuchungskreisValues")
|
||||
def getValuesBuchungskreis(D3Interface d3, Translation transl)
|
||||
{
|
||||
// Persistierung nur der eindeutigen ID - In der Wertemenge wird über die Translation "ID - Beschreibung" angezeigt"
|
||||
|
||||
List<String> buchungskreisResultset = [];
|
||||
|
||||
if(SystemSpecificConst.needCertificateCheck == false) {
|
||||
deactivateCertificateCheck();
|
||||
}
|
||||
|
||||
URL url = new URL('https://' + SystemSpecificConst.baseOdata + '/sap/opu/odata/sap/ZCA_D3_VALUE_LISTS_SRV/CompanySet?$format=json&$orderby=CompanyCode');
|
||||
|
||||
try {
|
||||
if(url != null) {
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
String userpass = SystemSpecificConst.lUserOdata + ":" + SystemSpecificConst.lPassOdata;
|
||||
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
|
||||
con.setRequestProperty ("Authorization", basicAuth);
|
||||
|
||||
InputStream is = con.getInputStream();
|
||||
String responseValue = IOUtils.toString(is, "UTF-8");
|
||||
is.close();
|
||||
|
||||
JSONObject obj = new JSONObject(responseValue);
|
||||
|
||||
JSONArray arr = obj.get("d").getJSONArray("results");
|
||||
for (int i = 0; i < arr.length(); i++)
|
||||
{
|
||||
JSONObject metadataObj = arr.getJSONObject(i);
|
||||
// Buchungskreis holen
|
||||
String companyCode = metadataObj.getString("CompanyCode");
|
||||
|
||||
// Beschreibung holen
|
||||
String description = metadataObj.getString("Description");
|
||||
transl.set( companyCode, companyCode + " | " + description);
|
||||
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
d3.log.error( " ## BuchungskreisTranslationValues - Exception = " + e.getMessage() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ValueSetTranslation(entrypoint="ServicBelegartValues")
|
||||
def ServicBelegartTransValues(D3Interface d3, Translation transl) {
|
||||
|
||||
def lang = transl.locale.language
|
||||
|
||||
d3.log.info("Groovy - ValueSets: start ServicBelegartValues " + lang + " - locale: " + transl.locale);
|
||||
|
||||
if( lang == "de" ) {
|
||||
lang = "DE"
|
||||
} else if( lang == "en" ) {
|
||||
lang = "EN"
|
||||
}
|
||||
|
||||
List<String> buchungskreisResultset = [];
|
||||
|
||||
if(SystemSpecificConst.needCertificateCheck == false) {
|
||||
deactivateCertificateCheck();
|
||||
}
|
||||
|
||||
URL url = new URL("https://" + SystemSpecificConst.baseOdata + "/sap/opu/odata/sap/ZCA_D3_VALUE_LISTS_SRV/DocumentTypeSet?\$format=json&\$filter=LanguageIso%20eq%20'" + lang + "'");
|
||||
|
||||
try {
|
||||
if(url != null) {
|
||||
URLConnection con = url.openConnection();
|
||||
|
||||
String userpass = SystemSpecificConst.lUserOdata + ":" + SystemSpecificConst.lPassOdata;
|
||||
String basicAuth = "Basic " + new String(Base64.getEncoder().encode(userpass.getBytes()));
|
||||
con.setRequestProperty ("Authorization", basicAuth);
|
||||
|
||||
InputStream is = con.getInputStream();
|
||||
String responseValue = IOUtils.toString(is, "UTF-8");
|
||||
is.close();
|
||||
|
||||
JSONObject obj = new JSONObject(responseValue);
|
||||
|
||||
JSONArray arr = obj.get("d").getJSONArray("results");
|
||||
for (int i = 0; i < arr.length(); i++) {
|
||||
JSONObject metadataObj = arr.getJSONObject(i);
|
||||
// Belegart holen
|
||||
String documentTypeShort = metadataObj.getString("Id");
|
||||
// Beschreibung holen
|
||||
String documentTypeDescription = metadataObj.getString("Description");
|
||||
transl.set( documentTypeShort, documentTypeDescription );
|
||||
}
|
||||
}
|
||||
} catch(Exception e) {
|
||||
d3.log.error( " ## ServicBelegartTransValues - Exception = " + e.getMessage() );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Deaktivierung der Zertifikatsprüfung
|
||||
def deactivateCertificateCheck() {
|
||||
// CONNECT WITHOUT SSL CHECK
|
||||
TrustManager[] trustAllCerts = new TrustManager[1]
|
||||
def tm = new X509TrustManager() {
|
||||
public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; }
|
||||
public void checkClientTrusted(X509Certificate[] certs, String authType) { }
|
||||
public void checkServerTrusted(X509Certificate[] certs, String authType) { }
|
||||
}
|
||||
trustAllCerts[0] = tm;
|
||||
SSLContext sc = SSLContext.getInstance("SSL");
|
||||
sc.init(null, trustAllCerts, new java.security.SecureRandom());
|
||||
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
|
||||
HostnameVerifier allHostsValid = new HostnameVerifier() {
|
||||
public boolean verify(String hostname, SSLSession session) { return true; }
|
||||
};
|
||||
HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid);
|
||||
// CONNECT WITHOUT SSL CHECK
|
||||
}
|
||||
|
||||
} // End of file
|
||||
Reference in New Issue
Block a user