NFe 10.0 B2B Entrada - Deploy Module Adapter

Bom dia.
Estou desenvolvendo a solução de de NFe de entrada e para resolver o problema de múltiplos anexos estou seguindo o wiki ( http://wiki.sdn.sap.com/wiki/pages/viewpage.action?pageId=233474286 ).
Eu gerei o .ear pelo NWDS e fiz o deploy pelo SDM ( http://help.sap.com/saphelp_nw04/helpdata/en/22/a7663bb3808c1fe10000000a114084/content.htm )
Mas no Visual Admin ele não permite que o module seja 'startado'.
Alguém saberia me informar se o processo que estou fazendo está correto?
Obrigado.
Att.
Mateus Pires Leite.

Discussão movida de  SPED & NF-e para Bancos de Dados & Tecnologia (Database & Technology)
Bom dia Mateus,
Encontrou a solução?
Favor dê feedback ao fórum, caso positivo ou negativo.
Atenciosamente, Fernando Da Rós

Similar Messages

  • Error while deploying the Adapter Module

    Expets,
    i am getting below error in communication channel:
    Message processing failed. Cause: com.sap.engine.services.jndi.persistent.exceptions.NamingException: Exception during lookup operation of object with name localejbs/WriteExcelFile, cannot resolve object reference. [Root exception is javax.naming.NamingException: Error occurs while the EJB Object Factory trying to resolve JNDI reference Reference Class Name: Type: clientAppName Content: sap.com/WriteExcelEAR Type: interfaceType Content: local Type: ejb-link Content: WriteExcelFile Type: jndi-name Content: WriteExcelFile Type: local-home Content: com.sap.aii.af.lib.mp.module.ModuleLocalHome Type: local Content: com.sap.aii.af.lib.mp.module.ModuleLocal com.sap.engine.services.ejb3.runtime.impl.refmatcher.EJBResolvingException: Cannot start applicationsap.com/WriteExcelEAR; nested exception is: java.rmi.RemoteException: [ERROR CODE DPL.DS.6125] Error occurred while starting application locally and wait.; nested exception is: com.sap.engine.services.deploy.exceptions.ServerDeploymentException: [ERROR CODE DPL.DS.5035] Application [sap.com/WriteExcelEAR] cannot be started. Reason: it has hard reference to resource [com.sap.xi.repository] with type [library], which is not active on the server. Hint: 1) Is referred resource deployed? 2) Is referred resource able to start? at com.sap.engine.services.ejb3.runtime.impl.DefaultContainerRepository.startApp(DefaultContainerRepository.java:315)
    I am also getting the same warning when i am deploying the adapter.
    Reference list in   application-j2ee-engine.xml   is as follows:
    engine.security.facade
    engine.j2ee14.facade
    com.sap.aii.af.svc.facade
    com.sap.aii.af.ifc.facade
    com.sap.aii.af.lib.facade
    com.sap.base.technology.facade
    com.sap.xi.repository
    Kindly help.
    Edited by: Priyanka Sharma on Jun 18, 2010 4:29 PM

    com.sap.xi.repository reference is not required,, how are you deploying your module on PI server,
    You must be using some external library for excel conversion, if external library is present in your deployed file, you don't need to add com.sap.xi.repository reference.
    Check:
    Is EAR to SDA conversion needed for EJB EAR module
    if you opt to use CECLT tool provided with NWDS 7.1, make sure you import SAP EAR File(it will have External library) on your local system.

  • Deployment of Adapter Modules.

    Hi,
           Do we deploy the Adapter Modules using SDM.
    In that case how do we assign that o the specific communication channel.
    If i dont assign will they work?
    Thanks in Advance.
    Raj

    >>Do we deploy the Adapter Modules using SDM.
    Yes.
    >>In that case how do we assign that the specific communication channel.
    Specify the adapter module under the Processing Sequence of Module tab in the CC.
    >>If i dont assign will they work?
    No. It will not work.
    Thanks
    SaNv...

  • What authorization required to deploy module from NWDS 7.1

    Hi Experts,
    Need to deploy custom adapter module from NWDS 7.1 to PI server, Please help me to know exact access/authorization role required one developer to publish the module.
    I have gone through many blogs and thread but not able to find exact administrator role which help to deploy the custom module on PI server.
    Error I am getting in NWDS 7.1, while deploying module:
    Could not establish connection to AS Java on [<server detail>]. Authentication did not succeed. Wrong or missing security credentials (password) for principal [PIUSER], or the specified principal has no permissions to perform JNDI related operations.
    Regards
    Raghav
    Edited by: RaghavTiwari on Feb 4, 2012 8:25 AM

    Hi Raghav,
    Check this [SAP Help link|http://help.sap.com/saphelp_nw73ehp1/helpdata/en/43/1e1bbc5d9206fde10000000a422035/frameset.htm] for User Roles for Adapter and Module Development.
    Regards,
    Raghu_Vamsee.

  • Throw Error in Module Adapter EJB

    Hi experts,
    In order to make some validations when getting file in File Adapter, was developed a EJB Module Adapter. When the validation failed, it must to be generate a throw error with a text that appears in Runtime workbench.
    throw new ModuleException("Error al crear objeto Archivo para procesar el legacy: "+legacy);
    But, it doens't happen. In Runtime workbench I just can see a Exception null . 
    Follow Below the Java Code of Module EJB:
    package clasesSox;
    import java.io.IOException;
    import java.io.InputStream;
    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.Map;
    import java.util.StringTokenizer;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.xml.sax.SAXException;
    import org.xml.sax.helpers.DefaultHandler;
    import com.sap.aii.af.mp.module.ModuleException;
    @author martin.j.rodriguez
    public class Archivo extends XMLParser {
         private Log log = LogFactory.getLog(Archivo.class);
         private Config config;
        private String nombre, tipoSistema, pais;
        private Date fecha;
        //private boolean procesado;
         //private org.xml.sax.XMLReader xr;
         private double totimp, importeParcial;
        private String buscaTOTIMP, regImporte, buscaTOTLIN;
        private String [] tags;
        private InputStream inputStream;
        private int totlin, regCuenta;
        public Archivo(InputStream is, String legacy) throws ModuleException {
             super();
             Map properties = getConfig().getConfig(legacy);
              if (properties == null) {
                   if (log.isErrorEnabled()){
                        log.error("Error al crear objeto Archivo para procesar el legacy: "legacy" - No se encontro la configuración.");
                   throw new ModuleException("Error al crear objeto Archivo para procesar el legacy: "+legacy);
              this.buscaTOTIMP = (String)properties.get(Config.CAMPO_IMPORTE_TOTAL);
              this.regImporte =  (String)properties.get(Config.CAMPO_IMPORTE);
              this.buscaTOTLIN = (String)properties.get(Config.CAMPO_LINEAS_TOTAL);
              String tagstosearch = (String)properties.get(Config.CAMPO_LINEAS_CONTAR);
              StringTokenizer st = new StringTokenizer(tagstosearch, ",");
              tags = new String[st.countTokens()];
              int i=0;
              while(st.hasMoreTokens()){
                   String token = st.nextToken();
                   tags[i++] = token.trim();
              setInputStream(is);
        public List validaArchivo() throws ParserConfigurationException, SAXException, IOException {
              regCuenta = 0;
             importeParcial = 0;
              DefaultHandler handler = this;
              SAXParserFactory factory = SAXParserFactory.newInstance();
              SAXParser saxParser = factory.newSAXParser();
              saxParser.parse(inputStream, handler);
              String s = "";
              roundValues();
              String stotimp = new BigDecimal(totimp).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
              String simporteParcial = new BigDecimal(importeParcial).setScale(2, BigDecimal.ROUND_HALF_UP).toString();
              if (log.isDebugEnabled()){
                   log.debug("Resultados: TOTIMP: "stotimp" - CONTEO: "+simporteParcial);
                   log.debug("Resultados: TOTLIN: "totlin" - CONTEO: "+regCuenta);
              List results = new ArrayList();
              if (totimp != importeParcial) {
                   s = "Error al contar el total del importe, deberia ser: "stotimp" y el calculado es: "+simporteParcial;
                   if (log.isDebugEnabled()){
                        log.debug(s);
                   results.add(s);
              if (totlin != regCuenta) {
                   s = "Error al contar el total del lineas, deberia ser: "totlin" y el calculado es: "+regCuenta;
                   if (log.isDebugEnabled()){
                        log.debug(s);
                   results.add(s);
              return results;
         private void roundValues() {
              totimp = roundValue(totimp);
              importeParcial = roundValue(importeParcial);
    redondea un numero a 2 decimales
         private double roundValue(double d) {
              BigDecimal bd = new BigDecimal(d);
              bd = bd.setScale(2, BigDecimal.ROUND_HALF_UP);
              return bd.doubleValue();
         public void startElement(String namespaceURI, String lName, String qName, org.xml.sax.Attributes attrs) throws org.xml.sax.SAXException {
              String etiqueta = getTagName(qName, lName);
              //niveles.add(etiqueta);
              // Cuenta registros
              for (int i = 0;i< tags.length; i++){
                   if (etiqueta.equals(tags+)){
                        regCuenta++;
                        break;
         public void endElement(String namespaceURI, String lName, String qName)     throws org.xml.sax.SAXException     {
              String etiqueta = getTagName(qName, lName);
              //niveles.remove(niveles.size() - 1);
              // set valor totlin
              if (buscaTOTLIN.equals(etiqueta)){
                   totlin = parseInt(valor);
              // set valor totimp
              if (buscaTOTIMP.equals(etiqueta)){
                   totimp = parseDouble(valor);
              // suma importe parcial
              if (regImporte.equals(etiqueta)){
                   importeParcial += parseDouble(valor);
        public InputStream getInputStream() {
            return inputStream;
        public void setInputStream(InputStream texto) {
            this.inputStream = texto;
        public String getNombre() {
            return nombre;
        public void setNombre(String nombre) {
            this.nombre = nombre;
        public String getTipoSistema() {
            return tipoSistema;
        public void setTipoSistema(String tipoSistema) {
            this.tipoSistema = tipoSistema;
        public String getPais() {
            return pais;
        public void setPais(String pais) {
            this.pais = pais;
        public java.util.Date getFecha() {
            return fecha;
        public void setFecha(java.util.Date fecha) {
            this.fecha = fecha;
         public static void main(String args[]) {
                   String fileName = "FI_MAS_SAP_RENBAN_####_AAAAMMDD_HHMMSS.TXT";
                   java.util.StringTokenizer st = new java.util.StringTokenizer(fileName, "_");
                   for (int i = 0; i < 5; i++)
                        st.nextToken();
                   String anioMes = st.nextToken();
                   if (anioMes != null)
                        if (anioMes.length() > 5) {
                             System.out.println(anioMes);
                             System.out.println(anioMes.substring(0, 4) + " " + anioMes.substring(4, 6));
         private double parseDouble(String number){
              if (number == null || number.trim().length()==0 || number.trim().equals("/"))
                   return 0;
              // remuevo los 0 a la izquierda que afectan al parseint
              number = number.trim().replaceAll("^0+","");
              number = number.replaceAll(",",".");
              double result = 0;
              try {
                   result = Double.parseDouble(number);
              catch (NumberFormatException nfe){
                   System.err.println("Error parseando numero "+number);
              return result;
         private int parseInt(String number){
              if (number == null || number.trim().length()==0 || number.trim().equals("/"))
                   return 0;
              // remuevo los 0 a la izquierda que afectan al parseint
              number = number.trim().replaceAll("^0+","");
              number = number.replaceAll(",",".");
              int result = 0;
              try {
                   result = Integer.parseInt(number);
              catch (NumberFormatException nfe){
                   System.err.println("Error parseando numero "+number);
              return result;
    Carga la configuracion
    @return
         protected Config getConfig(){
              if (config == null){
                   ConfigParser cp = new ConfigParser();
                   config = cp.readConfig();
              return config;
    Could anyone help me about this problem ?
    Thanks in advance.+

    Hi,
    do u think, u will get the error text in the RWB ? I don't think so, it will provide the output in the RWB.
    The output of the Adapter module is nothing but XI -XML message. So this will not come
    check it out for the how to work on Adapter Modules-
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f013e82c-e56e-2910-c3ae-c602a67b918e
    Hope this helps,
    Regards,
    Moorthy

  • Not able to Find deployed module in JNDI browser in NWA

    Hello Team,
    I have created an customized module in eclipse which retrieves the data from the audit logs and creates a file in the target location so i have deployed the module and it showed the logs as deployed successfully and tried to find its location in the JNDI browser in NWA but i am not able to view the deployed module in it. For doing the above process i have refered the link  How to setup NWDS configuration for creating Customized Adapter Modules in PI 7.31 using NWDS 7.3 SP07 .
    So please help me in finding the deployed module.
    Regards,
    Avinash.

    Hi Avinash
    Use the below path in NWA
    NWA--->Troubleshooting--->JNDI Browser
    then select context name and search by the JNDI name of the module.
    JNDI name will be found in the ejb-j2ee-engine.xml

  • Module Context - Module adapter development question

    Hi,
    I've been using the method moduleContext.getContextData(nameParameterChannel) to get values from the communication channel for my custom modules adapter.
    Reading the [API|http://help.sap.com/javadocs/pi/SP3/xpi/com/sap/aii/af/lib/mp/module/ModuleContext.html] there is another method for which I'm not sure what it does:
    --> getContextData(String name, boolean fallback)
    Returns a value of a module configuration parameter and if fallback is true and the parameter cannot be found in the module configuration it is tried to read it from the channel configuration data
    With the usual method --> getContextData(String name), I've been always reading from the channel configuration data (name being the name of the parameter and the string returned being the value).
    So what does that method above do? That place "module configuration" in contrast to "channel configuration data" is not clear to me.
    Thanks!

    Closing (not solution yet)

  • Module Adapter - String Change in XML

    Module Adapter
    I have been reading "How to Create Modules for the J2EE Adapter Engine" and am trying to implement an adapter module to change a few strings in the message.
    I understand I can grab the XI message using the getPrincipalData such as:
    // get the XI message from the environment
    Message msg = (Message) inputModuleData.getPrincipalData();
    and return the message using:          
    // provide the XI message for returning
    inputModuleData.setPrincipalData(msg);
    What is the proper method of searching for strings inside this message and changing a value. We have tried the approach of using XSLT and Java maps to change values but the items we need to change need to occur at the adapter level. Any sample code around changing payload information in an adapter module would be appreciated.
    Regards

    Hi,
    The methods which you use with SAX parser are:
    1) Start of the document(startDocument)
    2) start of the element(startElement)
    3) end of the element(endElement)
    4) end of the document(endDocument)
    5) chars()
    Build your logic using these. These blogs should help you in the process:
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
    You could write the java code in the process method of your bean or you could call the class from the process method.
    What exactly do you mead by testng the adapter module? You could test your the java code i.e the SAX parser as you would test any standalone java code. You would be using the same in your bean.
    Regards,
    Chandra

  • Runtime Error Custom Module Adapter 7.31

    Hi experts.
    We've developed a custom module adapter to be used in HTTP_AAE sender adapter. The deployement is successfull, the module is started but we are facing this error at runtime:
    Error in processing caused by: com.sap.aii.adapter.http.api.HttpAdapterException: ERROR_IN_MODULECHAIN, null
    ¿Any idea what can be happening?
    We are working with version 7.31 SP 10 Java only stack installation.
    Thanks a lot.
    Kind regards.
    Christian.

    Hi Amit.
    Thank u so much but your response.
    Regarding your quesion, yes I have done it.
    Regards.
    Christian.

  • See Burger Error in BICMODULE-module:Adapter call failed. Reason: null

    Hello All,
    Scenario IDOC to File using Seeburger BIC problems in in my receiver adapter when converting from XML to EDI.
    Error is:
    "Message processing failed. Cause: Error in BICMODULE-module:Adapter call failed. Reason: null"
    The Seeburger modules used in my receiver adapter:
    1     localejbs/CallBicXIRaBean     Local Enterprise Bean     BIC_MT
    2     localejbs/CallBicXIRaBean     Local Enterprise Bean     BIC
    3     localejbs/Seeburger/FileStore     Local Enterprise Bean     ARCHIVE_EDI
    4     CallSapAdapter     Local Enterprise Bean     0
    with following module configurations
    BIC     destDelimiter     @http://seeburger.com/xi/bic/destDelimiter
    BIC     destSourceMsg     source
    BIC     destTargetMsg     MainDocument
    BIC     dynamicConfiguration     true
    BIC     newLine     true
    BIC     useAttribIfSet     true
    BIC_MT     PartnerLookup     on
    BIC_MT     destSourceMsg     MainDocument
    BIC_MT     destTargetMsg     MainDocument1
    BIC_MT     mappingName     XML_Generic_ANSI_X12_to_DB_MT_OUT
    BIC_MT     saveSourceMsg     source
    Can some one tell me why there is an Error and what additional module configurations it requires .
    Thank you,

    Hi,
    If possible go to mapping in BIC designer Tool and execute the same by passing your payload there...
    if you encounter any errors then there might be a problem with mapping developed...or can be payload..
    Also check the parameter used for destSourceMsg source ...is that the source message which contains the payload ?
    HTH
    Rajesh

  • How to Deploy Primavera Adapter on 7.1 WAS

    Hi SDNers
    We have PI System 7.10.
    We want to deploy the PrimaveraAdapter.sca file on PI server  .
    1) SDM option is not available in 7.1 Systems, so how should i deploy it?
    2) Initially i want to undeploy previously deployed Primavera Adapter too, but dunno how??
    Thanks n Regards,
    Chetna

    In NWDS you can maintain the connected J2EE server name(IP and SID). Give the info abt your PI server
    Also in NWDS, you will have deploy perspective. Swtich to deploy and undeploy perspective.
    In undeploy perspective you will see all the deployed components. Select the component to be undployed. And click on start undeployment.
    In deploy perspective, you can choose deployable units from ur pc and the click start deployment.
    To do all these you need user J2EE_ADMIN.
    No need to have PCK.
    Edited by: Samiullah Qureshi on Oct 9, 2009 12:13 PM

  • ClassCastException by using deployed resource adapter

    Dear community team,
    I try to create an connection for my web application (war file) running on SAP Web Application Server to access an enterprise information system (Apache JackRabbit) by using JCA and deployed resource adapter. The resource adapter "jackrabbit-jca-1.3.3.rar " is provided Apache Jackrabbit.
    http://jackrabbit.apache.org/downloads.cgi
    I changed some deployment descriptor configuration and deployed it successfully by using Deployment Tools. With the Visual Administrator I also could check the JNDI object and finded an entry in connector container.
    The JNDI lookup worked fine and it returned a object type "JCARepositoryHandle" (I could analyse its type and attributes in debugging modus).If I tried to cast the object "JCARepositoryHandle", I got an ClassCastException.
    Do you have any adoption why I only saw the returned object "JCARepositoryHandle" in debugging modus but it wasnt possible cast and to use it.
    If you need any more information, please let me know.
    Thanks for your support.
    PS: Please have also a look in the attached source an configuration files:
    Java servlet class
    ===================================================================
    Connection connection = null;
          Context initctx = null;
             try {
              //get the initial JNDI context
              Hashtable env = null;
              initctx = new InitialContext();
             // perform JNDI lookup to get the connection factory
             JCARepositoryHandle rep = (JCARepositoryHandle)initctx.lookup("deployedAdapters/jcr/Repository/shareable/jcr/Repository");
    connector-j2ee-engine.xml
    ===================================================================
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE connector-j2ee-engine SYSTEM 'connector-j2ee-engine.dtd'>
    <connector-j2ee-engine>
         <jndi-name>jcr/Repository</jndi-name>
         <pool-params>
              <max-connections-number>10</max-connections-number>
              <max-time-to-wait-connection>120</max-time-to-wait-connection>
              <expiration-control>
                   <connection-lifetime>900</connection-lifetime>
                   <run-cleanup-thread>300</run-cleanup-thread>
              </expiration-control>
         </pool-params>
    </connector-j2ee-engine>
    ra.xml
    ===================================================================
    <?xml version="1.0" encoding="UTF-8"?>
        <!DOCTYPE connector PUBLIC
            '-//Sun Microsystems, Inc.//DTD Connector 1.0//EN'
            'http://java.sun.com/dtd/connector_1_0.dtd'>
        <connector>
          <display-name>Jackrabbit JCR Adapter</display-name>
          <vendor-name>Apache.org</vendor-name>
          <spec-version>1.0</spec-version>
          <eis-type>JCR Adapter</eis-type>
          <version>1.6</version>
          <license>
            <description>Not required</description>
            <license-required>false</license-required>
          </license>
          <resourceadapter>
            <managedconnectionfactory-class>org.apache.jackrabbit.jca.JCAManagedConnectionFactory</managedconnectionfactory-class>
            <connectionfactory-interface>javax.jcr.Repository</connectionfactory-interface>
            <connectionfactory-impl-class>org.apache.jackrabbit.jca.JCARepositoryHandle</connectionfactory-impl-class>
            <connection-interface>javax.jcr.Session</connection-interface>
            <connection-impl-class>org.apache.jackrabbit.jca.JCASessionHandle</connection-impl-class>
            <transaction-support>XATransaction</transaction-support>
            <config-property>
              <config-property-name>HomeDir</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>C:/temp/repository</config-property-value>
            </config-property>
            <config-property>
              <config-property-name>ConfigFile</config-property-name>
              <config-property-type>java.lang.String</config-property-type>
              <config-property-value>C:/temp/repository/repository.xml</config-property-value>
            </config-property>
            <reauthentication-support>false</reauthentication-support>     
          </resourceadapter>
        </connector>

    The reason for the ClassCastException was the class loader issue.

  • Value mapping access from XI module adapter

    Hi,
    is it possible to access a value mapping from an XI module adapter?
    Thanks
    Yann

    hi
    1)what is the differnce between ValueMappingReplication(Asynchronous) and ValueMappingReplicationSynchronous .
    In sync you will get the value mapping replication status back and in async you won't. In sync based on the response u can update again in case of any failure. If data size is large use async.
    2) Message type ValueMappingReplication contains Operation ,GroupId,Context,scheme,agency.
    what is the meaning of Operation??
    The operation that you are going to perform. Below is the operations list and the contents to be set in the message for the same
    Insert = all fields must be set;
    Delete =all fields must be set;
    DeleteGroup = fields GroupID and context must be set;
    DeleteContext = field Context must be set;
    DeleteContextGeneric = Context contains the starting part for the context to be deleted
    what is the use of group ID??
    Displays the different representations of an object.
    A value mapping group is identified uniquely by a GUID.
    You can also assign a name to a value mapping group.
    is this necessary to maintain all these values in Ztable and also source and target values ?? and use them in Abap aproxy logic??
    no. system creates the value mapping table. you can take it frm there. no need of any ztables.
    3) is there any Message Mapping Needed.?? and Interface Mapping Needed to implement value Mapping replication??
    You will be sending the value mapping data from a sender system. If it can sent in the same format not required, otherwise you will have to.
    4)what is the Sender Adapter type ??
    Any adapter...depends on the sender system.
    5) if I did replication from SAP..can I see the details in ID
    You can see it in Cache monitoring in RWB.
    for more details refer
    http://help.sap.com/saphelp_nw70/helpdata/EN/13/ba20dd7beb14438bc7b04b5b6ca300/content.htm
    rgds
    Arun

  • WSIL not showing successfully deployed modules

    In my scenario, I have deployed the already build modules (EAR) to soa_server1. Now I have to use this deployed modules wsdl to build composite application. But after deploying the modules (EJB modules) into soa_server1, WSIL connection not showing the deployed modules.
    what could be the possible reasons for this ?
    WSIL connection url : http://localhost:8001/inspection.wsil
    Thanks.

    2014-07-09 16:23:01:583 376 1280 Agent WARNING: Failed to evaluate Installed rule, updateId = {189A8F50-0C3A-4FDF-8BC2-BC23A3EB11FB}.101, hr = 80242013
    Please DECLINE the Internet Explorer 9 Irish Language Pack for Windows 7 x64 update and try again.
    Lawrence Garvin, M.S., MCSA, MCITP:EA, MCDBA
    SolarWinds Head Geek
    Microsoft MVP - Software Packaging, Deployment & Servicing (2005-2014)
    My MVP Profile: http://mvp.microsoft.com/en-us/mvp/Lawrence%20R%20Garvin-32101
    http://www.solarwinds.com/gotmicrosoft
    The views expressed on this post are mine and do not necessarily reflect the views of SolarWinds.

  • TestStand internal mechanism: call sequence/ architecture c++ code module adapter, .dll functions

    I would like to know more about this particular aspect of TestStand's architecture:
    What exactly happens "internally" (class/seq diagram ?)when a c/c++ dll code module adapter step invokes/ calls an exported .dll function (testStand sequence executed from sequenceEditor) ?
    My guess (wrong/correct ?) is that:
    I execute
    SeqEdit.exe
    which hosts
    teengn.dll
    which hosts
    cppAdp.dll
    which hosts
    "myDllWithExportedFunctions.dll"
    and (finally) directly calls exported functions of "myDllWithExportedFunctions.dll"

    Christoph -
    Your binary file presentation at a high level is correct.
    The object relationship is:
    - The Sequence Editor is just a client of the TestStand engine.
    - The Engine is the creator of all TestStand objects.
    - The Engine creates the Sequence File object for the Sequence Editor.
    - The Sequence File has a reference to a Sequence object, i.e. RunState.SequenceFile.Data.Seq["MainSequence"]
    - The Sequence has a reference to a Step object, i.e. RunState.SequenceFile.Data.Seq["MainSequence"].Main["Action"]
    - The Step has a Module object, i.e. RunState.SequenceFile.Data.Seq["MainSequence"].Main["Action"].TS.SData
    - The Module object uses its associated Adapter class to Load/Run code modules.
    - The DLL handle and function pointer are stored
    in the Module object.
    - The Module object with the Adapters help knows how to call the function in the DLL.
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

Maybe you are looking for

  • How can I Sync my android phone calendar to my iPad calendar

    Trying to find out is there an easy way to get my android phone calendar to sync with my iPad calendar.

  • Enterprise bpm cluster query urgent please

    Hello I have 3 machines one 1st machine it is admin server and other 2 are managed servers I will install weblogic on all 3 machines and then create a domain but my query is to do with BPM enterprise.Should I install bpm enterprise on all 3 machines

  • PowerBook G4 PC Card slot

    I see that my PowerBook has a PC slot, but what kinds of cards go in there? What are the options? Where can I browse the choices? I have a PowerBook G4 running the latest and greatest system. Thanks in advance!

  • FI Document - TRV interm. document

    HI guys,   i want to know which FM can get TRV interm. document by FI DOCUMENT

  • Adobe Flash Player (general installation error)

       Anyone that can't update or install the latest Adobe Flash Player have this problem/error and know how to solve it?