Expand my Community achievements bar.

Extract Subscription id from Event xml field

Avatar

Level 8

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.

6 Replies

Avatar

Level 8

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

Avatar

Community Advisor

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

Avatar

Level 8

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

Avatar

Level 8

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

Avatar

Level 4

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.   

Avatar

Community Advisor

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