Highlighted

Extract Subscription id from Event xml field

Venu_Reddy

MVP

20-03-2019

I tried to extract subscription id from the field event xml(ctx) in the schema trackingLogEventHisto which is of type mdata by using the source expression 'Node value' and getting below error:

QUE-370015 The node of path '/ctx' is not stored as an independent SQL field (document of type 'Archived events (****)'). Unable to use it as a filtering criteria in a query.

Is there any other way to fetch the subscription id by using java script or other.

Replies

Highlighted

Venu_Reddy

MVP

27-03-2019

Hello Team,

Just following up on this. Can we use Nodevalue() function to extract the data from xml attribute ?

Can you please provide a sample code if we can able to extract using JavaScript (or) is there any other way to get the subscription id from the schema nmstrackingLogEventHisto

wodnicki

florentlb

Ananya Kuthiala

Adhiyan

Highlighted

wodnicki

MVP

01-04-2019

Hi,

Requests are stored in nms:eventHisto.

Can you paste the code you're using and the field you're trying to parse out?

Thanks,

-Jon

Highlighted

Venu_Reddy

MVP

01-04-2019

Hi Jon,

Thank you for the response.

yes, i'm getting failed when i tried to extract any particular filed from the xml(event/ctx) attribute.

Regards,

Venu

Highlighted

Venu_Reddy

MVP

30-04-2019

Hi All,

Can anyone please provide a sample javascript which will extract the data (eg. say Subscriptionid) from the attribue (event/ctx) of type mdata in the schema nms:eventHisto.

Any other ways to extract data from an xml attribute would be appreciated.

Regards,

Venu

Highlighted

asariaaara

30-04-2019

var qwe = xtk.queryDef.create(

      <queryDef schema="nms:delivery" operation="select">

          <select>

              <node expr="@id"/>

              <node expr="[content/sms/source]" alias="@content"/>

          </select>

          <where>

              <condition expr="@id=1113435097"/>

          </where>

      </queryDef>

);

var result= qwe.ExecuteQuery();

for each(var res in result){

var tempValue=res.@content;

logInfo('str'+tempValue.toXMLString(true));

logInfo('str1'+res.@id);

//logInfo('txt content is '+res.target.@content.toString());

}

Try this...
this is what i used.   

Highlighted

wodnicki

MVP

30-04-2019

Hi,

Use e4x to parse the xml returned out of query results, for field 'data':

var data = new XML(res.data + '');

From there it's ordinary xml object:

data.@subscriptionId, etc.

Thanks,

-Jon