J2EE: Feature nascoste
Monitor di sistema |
http://<FQDN>:5<inst_num>00/MessagingSystem/monitor/syslog.jsp |
Exchange Profiles |
|
SLD | |
Netweaver Administrator |
|
SAP Management Console | |
Verifica installazione driver JDBC |
Monitor di sistema |
http://<FQDN>:5<inst_num>00/MessagingSystem/monitor/syslog.jsp |
Exchange Profiles |
|
SLD | |
Netweaver Administrator |
|
SAP Management Console | |
Verifica installazione driver JDBC |
Per configurare il cc sulla base del SAP Logon procedere come segue
Communication Channel Editor | SAP Logon |
Adapter Type RFC
Receiver Marcare Load Balancing |
|
Message Server |
Message Server |
Message Server Service |
“sapms”+System ID es: sapmsIP0 |
System ID |
System ID |
Logon Group |
Group/Server |
Utilizzare l’adapter SOAP senza Envelop qualora occorra inviare un messaggio HTTP in modalità POST.
In scenari webservice basati su communication channel HTTP POST invece che SOAP può essere necessario dover :
Obiettivo
L’esigenza è quella di impedire che il file sul cc sender venga processato, e magari cancellato/archiviato, se l’elaborazione sul cc receiver va in errore.
Soluzione
Impostare la QoA sul cc sender in modalità Best Effort invece che Each Once.
In questo modo si rende sincrono l’intero processo la qual cosa comporta che:
La struttura dati che definisce la service interface su cui si baserà un ABAP proxy deve sempre essere definita tramite un datatype e mai tramite un xsd; il datatype infatti, viene importato sull’ECC e dà origine ad un oggetto di dictionary. Un xsd invece resta confinato sullo stack java e questo comporta che la fase di generazione del proxy sul lato ECC va a buon fine ma viene generato un abend (ST22) in fase di run dovuto al fatto che le strutture che definiscono l’interfaccia non sono presenti nel dictionary. Uno degli errori che può verificarsi è GETWA_NOT_ASSIGNED.
Il wizard di creazione dell’External Definition (dbtab) relativo alla tabella di lookup non vede la tabella in oggetto.
La ragione risiede nel fatto che all’utenza oracle utilizzata nel cc non è associato lo schema a cui la tabella appartiene.
Dal momento che il communication channel da utilizzare per la JDBC Lookup è un receiver, non è possibile associargli una query nella quale specificare lo schema Oracle; non è neppure possibile (per Oracle) indicare lo schema nella stringa di connessione JDBC.
A cura del dba, occorre far definire come schema di default dell’utenza utilizzata nel cc JDBC receiver quello a cui appartiene la tabella in oggetto.
Error message: No service for system SAPCRD client 201 in the integration directory
e
Error message. Transaction IDX1: Port SAPCRD, client 201, RFC destination
La tcode IDX1 sull’istanza PI (ABAP) deve definire la porta SAP<sid>, SAPCRD nell’esempio.
Per importare un Idoc custom in PI procedere come segue:
WE31 |
Creare segmenti + rilascio |
WE32 | Creare IDoc + rilascio |
WE81 |
Creare message type |
WE82 | Creare relazione message type / basic type |
WE32 | Creare view per IDoc |
A questo punto l’IDoc può essere importato nell’ESR
Assegnazione URL a cc PlainHTTP in modalità Assign Type URL Address
Assegnazione URL a cc PlainHTTP in modalità Assign Type HTTP Destination
public String PlainHTTPDestDynConf(String value, Container container)
throws StreamTransformationException{
try {
String url = value;
DynamicConfiguration conf = (DynamicConfiguration) container .getTransformationParameters() .get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key=DynamicConfigurationKey.create("http://sap.com/xi/XI/System/HTTP", "TargetURL");
conf.put(key, url);
return url;
} catch(Exception e) {
String exception = e.toString();
return exception;
}
}