Merci @Lorenzo Scalese ,

En revanche je me retrouve avec un "Method does not exist" lié au reader.Next 

J'ai pourtant mes 2 classes : 

Class replic.msg.XML Extends (%Persistent, %XML.Adaptor, Ens.Request)
{
Property Table As %String(MAXLEN = "");
Property Action As %String(MAXLEN = "");
Property CleIris As %String;
Property nIdentifiant As %String;
Property IdIris As %String;
Property Contenu As %String;
}
Class replic.msg.XMLStructure Extends %Persistent
{
Parameter XMLNAME = "data";
Property tablename As list Of replic.msg.XML(XMLPROJECTION = "ELEMENT");
}
Method readXML(pRequest As Ens.StreamContainer, pResponse As replic.msg.XMLStructure) As %Status
{
    set tsc             = $$$OK
    set reader          = ##class(%XML.Reader).%New()

    //set pResponse       = ##class(replic.msg.XMLStructure).%New()
    #dim data  As replic.msg.XMLStructure
	#dim tableName As replic.msg.XML
    do pRequest.Stream.Rewind()

    do reader.Correlate("data","replic.msg.XMLStructure")
    set status              = reader.OpenStream(pRequest.Stream)
    
    Do reader.Next(.data)

    Set key = ""
	Set tableName = data.tablename.GetNext(.key)
	While key '= "" {
		set ^debug() = tableName.Table
		Set tableName = data.tablename.GetNext(.key)
	}
	}

Mon erreur : 

ERREUR <Ens>ErrException: <METHOD DOES NOT EXIST>Next+25^%XML.Reader.1 *XMLNew,replic.msg.XMLStructure -- - connecté en tant que '-' numéro - @'' 

Bonjour @Lorenzo Scalese

Merci pour votre réponse, en fait je n'ai pas de d'évènement déclencheur. C'est un appel permanent à une API qui me permet de récupérer un flux json et qui va ensuite déclencher le business process. 

Du coup dans la méthode OnProcessInput de Ens.BusinessService,  je fais un appel à l'API, je stock le flux json dans un stream que je passe ensuite au SendRequestSync afin d'éxécuter le business process et j'attends en réponse le dernier message du process avant de refaire un appel à l'API et c'est la que cela ne fonctionne pas car je récupère plusieurs fois ce flux json. 

Bonjour @Irène Mykhailova ,

 Très bien je vous remercie, voici donc l'extrait de code qui me pose soucis. 

Method OnProcessInput(pInput As %RegisteredObject, Output pResponse As exparf.msg.dataXML) As %Status
{
    set tSC                      = $$$OK
    s tHttpRequest               = ##class(%Net.HttpRequest).%New()
    set pContainer               = ##class(Ens.StreamContainer).%New()
    s tHttpRequest.Server        = ..Server

    s tHttpRequest.ContentType   ="application/json"
  
   // set pContainer.Stream        = tHttpRequest.HttpResponse.Data
   // do pContainer.CopyFrom(tHttpRequest.HttpResponse.Data)
    Set jsonObject               = [].%FromJSON(tHttpRequest.HttpResponse.Data)
    Do ##class(%JSON.Formatter).%New().Format(jsonObject)
    set pContainer.Stream         = tHttpRequest.HttpResponse.Data

      for iTarget=1:1:$L(..TargetConfigNames, ",") {
            set tOneTarget=$ZStrip($P(..TargetConfigNames,",",iTarget),"<>W")  Continue:""=tOneTarget
            $$$TRACE("The target '"_tOneTarget_"' will be called "_$SELECT(..sync=1:"synchronously",..sync=0:"synchronously"))
            
            set tSC1=..SendRequestSync(tOneTarget,pContainer,.pResponse)  Set:$$$ISERR(tSC1) tSC=$$$ADDSC(tSC,tSC1)
        }
    
  return tSC
}