Update: Versionierung von Fertigungsaufträgen
This commit is contained in:
@@ -34,9 +34,9 @@ public class D3Hooks
|
|||||||
@Entrypoint( entrypoint = "hook_insert_exit_20" )
|
@Entrypoint( entrypoint = "hook_insert_exit_20" )
|
||||||
public int insertExit_20( D3Interface d3, Document doc, String fileDestination, int importOk, User user, DocumentType docType )
|
public int insertExit_20( D3Interface d3, Document doc, String fileDestination, int importOk, User user, DocumentType docType )
|
||||||
{
|
{
|
||||||
def repo_id = "a9768552-0f99-5876-a73e-f2865b09a657";
|
def repo_id = "2e0f1447-d775-51aa-8593-0e0a5d9662aa";
|
||||||
def baseUri = "https://d3t-app.rau.rau-pforzheim.de";
|
def baseUri = "https://d3ecm.rau.rau-pforzheim.de";
|
||||||
def authUsr = "VlEdhy+t56IhmlcZ45YlTOHwYa82cPd3LxakovVcJySqe+n5fzQCey+/FQ+KVGoC58z74l5qUwfQy8nXtZXQk4WVf9lO1n3wG4pgbOhjiZc=&_z_A0V5ayCRSfawhq6CylCK5wlpIpFAdRduIm5inJ1V3HmqUmSCVXfoK4GvUqlFS8C1F6hucJi-EzDrl-UqJkiCzhHRpw6ce";
|
def authUsr = "Zyu0W+L0fb6HF0sxPRyPdETFQFBCTOBLb1KcZfli2Sfeepce3TAmYQ22Qq1upRpNAsZou2njb9rkV4c0MRzMdwhPMwEcQCgDWo/VDxsOLkk=&_z_A0V5ayCQR0EAw9MiR-iA1MQAZsBKD5iT_eZeqUR-mqT2T-xMwoBzOA2BvbwjxQEXwJoiuAEGbrxTzJRFYMTVwhHGjwW-p";
|
||||||
|
|
||||||
//xlog( d3, 2, "repo_id " + repo_id );
|
//xlog( d3, 2, "repo_id " + repo_id );
|
||||||
//xlog( d3, 2, "baseUri " + baseUri );
|
//xlog( d3, 2, "baseUri " + baseUri );
|
||||||
@@ -46,7 +46,7 @@ public class D3Hooks
|
|||||||
|
|
||||||
def username = getUserIdpId( d3, "D3-User", repo_id, baseUri, authUsr );
|
def username = getUserIdpId( d3, "D3-User", repo_id, baseUri, authUsr );
|
||||||
|
|
||||||
xlog( d3, 2, "username " + username );
|
//xlog( d3, 2, "username " + username );
|
||||||
|
|
||||||
|
|
||||||
empfaenger.push( username );
|
empfaenger.push( username );
|
||||||
@@ -62,7 +62,8 @@ public class D3Hooks
|
|||||||
{
|
{
|
||||||
doc.setStatus( "Freigabe" );
|
doc.setStatus( "Freigabe" );
|
||||||
|
|
||||||
if ( isRepoIdInDocType( d3, docType.id, 59 ) ) // Kundenstammdaten
|
|
||||||
|
if ( isRepoIdInDocType( d3, docType.id, 51 ) ) // Kundenstammdaten
|
||||||
{
|
{
|
||||||
if ( doc.field[ 6 ] )
|
if ( doc.field[ 6 ] )
|
||||||
{
|
{
|
||||||
@@ -142,38 +143,35 @@ public class D3Hooks
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
// eingefügt von CALB/d.velop AG / 2024.06.11 / Versionierung von Fertigungsaufträgen
|
// eingefügt von CALB/d.velop AG / 2024.06.12 / Setzen des Mandanten bei SAP-Dokumenten (Mandant = 200)
|
||||||
|
|
||||||
if ( docType.id == "DFAUF" )
|
if ( ( isRepoIdInDocType( d3, docType.id, 48 ) ) && ( isRepoIdInDocType( d3, docType.id, 1 ) ) ) // Mandant / Buchungskreis ist in der Dokumentart enthalten
|
||||||
{
|
{
|
||||||
if ( doc.field[ 16 ] )
|
if ( doc.field[ 39 ] == "200" )
|
||||||
{
|
{
|
||||||
def sqlQuery = "select doku_id from firmen_spezifisch where kue_dokuart = 'DFAUF' and dok_dat_feld_16 = '" + doc.field[ 16 ] + "'";
|
if ( doc.field[ 1 ] )
|
||||||
|
|
||||||
def treffer = d3.sql.executeAndGet( (String) sqlQuery );
|
|
||||||
|
|
||||||
if ( treffer.size() > 0 )
|
|
||||||
{
|
{
|
||||||
sqlQuery = "select zeich_nr, var_nr from phys_datei where doku_id = '" + treffer[ 0 ].doku_id + "'";
|
if ( doc.field[ 1 ].indexOf( "|" ) > 0 )
|
||||||
treffer = d3.sql.executeAndGet( (String) sqlQuery );
|
|
||||||
|
|
||||||
if ( treffer.size() > 0 )
|
|
||||||
{
|
{
|
||||||
doc.number = treffer[ 0 ].zeich_nr;
|
// wird weiter unten behandelt
|
||||||
//doc.docField( "var_nr", treffer[ 0 ].var_nr );
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
def sqlQuery = "SELECT mandant_name FROM [D3ServiceT].[dbo].[dv_mandant] where mandant_nr = '" + doc.field[ 1 ] + "'";
|
||||||
|
|
||||||
|
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://d3sql;databaseName=D3ServiceT", 'd3DBAdminT', 'Dvelop1!', 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
|
||||||
|
|
||||||
|
def resultRows = sql.rows( sqlQuery );
|
||||||
|
|
||||||
|
doc.field[ 39 ] = resultRows[ 0 ].mandant_name;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Einfügung Ende / Versionierung von Fertigungsaufträgen
|
// Einfügung Ende / Setzen des Mandanten bei SAP-Dokumenten (Mandant = 200)
|
||||||
///////////////////////////
|
///////////////////////////
|
||||||
|
|
||||||
if ( isRepoIdInDocType( d3, docType.id, 31 ) ) // Materialstammdaten, ID 31 => Materialnummer
|
if ( isRepoIdInDocType( d3, docType.id, 31 ) ) // Materialstammdaten, ID 31 => Materialnummer
|
||||||
@@ -312,51 +310,67 @@ public class D3Hooks
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Entrypoint( entrypoint = "hook_upd_attrib_entry_20" )
|
@Entrypoint( entrypoint = "hook_upd_attrib_entry_20" )
|
||||||
public int hookUpdAttribEntry20(D3Interface d3, Document doc, User user, DocumentType docType, DocumentType docTypeNew) {
|
public int hookUpdAttribEntry20(D3Interface d3, Document doc, User user, DocumentType docType, DocumentType docTypeNew)
|
||||||
|
{
|
||||||
d3.log.error("START | hookUpdAttribEntry20")
|
d3.log.error("START | hookUpdAttribEntry20")
|
||||||
|
|
||||||
// temporäres Objekt holen, um zu prüfen, das sich Eigenschaften geändert haben
|
// temporäres Objekt holen, um zu prüfen, das sich Eigenschaften geändert haben
|
||||||
def oldDocAttributes = d3.archive.getDocument(doc.id());
|
def oldDocAttributes = d3.archive.getDocument(doc.id());
|
||||||
|
|
||||||
|
def ergebnis = hook_validate_update_entry_10( d3, user, docTypeNew, doc, "" );
|
||||||
///////////////////////////
|
|
||||||
// eingefügt von CALB/d.velop AG / 2024.06.12 / Setzen des Mandanten bei SAP-Dokumenten (Mandant = 200)
|
|
||||||
|
|
||||||
if ( ( isRepoIdInDocType( d3, docType.id, 48 ) ) && ( isRepoIdInDocType( d3, docType.id, 1 ) ) ) // Mandant / Buchungskreis ist in der Dokumentart enthalten
|
|
||||||
{
|
|
||||||
if ( doc.field[ 39 ] == "200" )
|
|
||||||
{
|
|
||||||
if ( doc.field[ 1 ] )
|
|
||||||
{
|
|
||||||
if ( doc.field[ 1 ].indexOf( "|" ) > 0 )
|
|
||||||
{
|
|
||||||
// wird weiter unten behandelt
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
def sqlQuery = "SELECT mandant_name FROM [D3ServiceT].[dbo].[dv_mandant] where mandant_nr = '" + doc.field[ 1 ] + "'";
|
|
||||||
|
|
||||||
def sql = groovy.sql.Sql.newInstance( "jdbc:sqlserver://d3sql;databaseName=D3ServiceT", 'd3DBAdminT', 'Dvelop1!', 'com.microsoft.sqlserver.jdbc.SQLServerDriver' );
|
|
||||||
|
|
||||||
def resultRows = sql.rows( sqlQuery );
|
|
||||||
|
|
||||||
doc.field[ 39 ] = resultRows[ 0 ].mandant_name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Einfügung Ende / Setzen des Mandanten bei SAP-Dokumenten (Mandant = 200)
|
|
||||||
///////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
d3.log.error("ENDE | hookUpdAttribEntry20")
|
d3.log.error("ENDE | hookUpdAttribEntry20")
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Entrypoint( entrypoint = "hook_insert_entry_10" )
|
||||||
|
public int hookInsertEntry10(D3Interface d3, User user, DocumentType docType, Document doc)
|
||||||
|
{
|
||||||
|
|
||||||
|
d3.log.info("START | hookInsertEntry10 ");
|
||||||
|
|
||||||
|
///////////////////////////
|
||||||
|
// eingefügt von CALB/d.velop AG / 2024.06.11 / Versionierung von Fertigungsaufträgen
|
||||||
|
|
||||||
|
|
||||||
|
if ( ( docType.id == "DFAUF" ) || ( docType.id == "DPEIN" ) || ( docType.id == "DMPRO" ) || ( docType.id == "DPZEU" ) )
|
||||||
|
{
|
||||||
|
|
||||||
|
if ( doc.field[ 16 ] )
|
||||||
|
{
|
||||||
|
def sqlQuery = "select doku_id from firmen_spezifisch where kue_dokuart = '" + docType.id + "' and dok_dat_feld_16 = '" + doc.field[ 16 ] + "'";
|
||||||
|
|
||||||
|
def treffer = d3.sql.executeAndGet( (String) sqlQuery );
|
||||||
|
|
||||||
|
if ( treffer.size() > 1 )
|
||||||
|
{
|
||||||
|
d3.log.error( "Anzahl Treffer: " + treffer.size() + " => es gibt mehr als ein Dokument fuer Auftragsnummer " + doc.field[ 16 ] + " in der Dokumentart " + docType.id + " !" );
|
||||||
|
return -120;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( treffer.size() == 1 )
|
||||||
|
{
|
||||||
|
|
||||||
|
sqlQuery = "select zeich_nr, var_nr from phys_datei where doku_id = '" + treffer[ 0 ].doku_id + "'";
|
||||||
|
treffer = d3.sql.executeAndGet( (String) sqlQuery );
|
||||||
|
|
||||||
|
if ( treffer.size() > 0 )
|
||||||
|
{
|
||||||
|
d3.log.info( "Fertigungsauftrag gefunden, setze Dokumentnummer " + doc.number + " bei Auftragsnummer " + doc.field[ 16 ] );
|
||||||
|
doc.number = treffer[ 0 ].zeich_nr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Einfügung Ende / Versionierung von Fertigungsaufträgen
|
||||||
|
///////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
d3.log.info("ENDE | hookInsertEntry10 ");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
public String getUserIdpId( D3Interface d3, String UserName, String repo_id, String baseUri, String authUserApiKey )
|
public String getUserIdpId( D3Interface d3, String UserName, String repo_id, String baseUri, String authUserApiKey )
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user