Hi to All
I need to implement this FetchXML in c# (for plugin)
fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
<entity name="invoice">
<attribute name="name" />
<attribute name="customerid" />
<attribute name="statuscode" />
<attribute name="gs1_sumincludingvat" />
<attribute name="invoiceid" />
<attribute name="gs1_reminderdate" />
<attribute name="gs1_newmaturitydate" />
<attribute name="gs1_maturity" />
<attribute name="gs1_ocr" />
<attribute name="invoicenumber" />
<attribute name="gs1_id" />
<order attribute="name" descending="false" />
<filter type="and">
<filter type="or">
<filter type="and">
<condition attribute="gs1_maturity" operator="on-or-before" value="2015-02-20" />
<condition attribute="gs1_newmaturitydate" operator="null" />
</filter>
<filter type="and">
<condition attribute="gs1_newmaturitydate" operator="not-null" />
<condition attribute="gs1_newmaturitydate" operator="on-or-before" value="2015-02-20" />
</filter>
</filter>
<condition attribute="statuscode" operator="eq" value="1" />
</filter>
</entity>
</fetch>
I wrote this:
ConditionExpression condition1 = new ConditionExpression();
condition1.AttributeName = "gs1_maturity";
condition1.Operator = ConditionOperator.LessThan;
condition1.Values.Add(DateTime.Now.AddDays(-daysCount));
ConditionExpression condition11 = new ConditionExpression();
condition11.AttributeName = "gs1_newmaturitydate";
condition11.Operator = ConditionOperator.Null;
FilterExpression filter = new FilterExpression();
filter.FilterOperator = LogicalOperator.And;
filter.Conditions.Add(condition1);
filter.Conditions.Add(condition11);
ConditionExpression condition2 = new ConditionExpression();
condition2.AttributeName = "gs1_newmaturitydate";
condition2.Operator = ConditionOperator.LessThan;
condition2.Values.Add(DateTime.Now.AddDays(-daysCount));
ConditionExpression condition22 = new ConditionExpression();
condition22.AttributeName = "gs1_newmaturitydate";
condition22.Operator = ConditionOperator.NotNull;
FilterExpression filter1 = new FilterExpression();
filter1.FilterOperator = LogicalOperator.And;
filter1.Conditions.Add(condition2);
filter1.Conditions.Add(condition22);
ConditionExpression condition4 = new ConditionExpression();
condition4.AttributeName = "statuscode";
condition4.Operator = ConditionOperator.Equal;
condition4.Values.Add((int)InvoiceStatusCodeEnum.Active); //1 - Active in StatusReason for Invoice
FilterExpression filter2 = new FilterExpression();
filter2.Conditions.Add(condition4);
ConditionExpression condition3 = new ConditionExpression();
condition3.AttributeName = "gs1_reminderdate";
condition3.Operator = ConditionOperator.Null;
FilterExpression filter3 = new FilterExpression();
filter3.Conditions.Add(condition3);
QueryExpression query = new QueryExpression("invoice");
query.AddOrder("invoicenumber", OrderType.Ascending);
query.ColumnSet.AllColumns = true;
//query.Criteria.AddFilter(filter);
query.Criteria.AddFilter(filter1);
query.Criteria.AddFilter(filter2);
query.Criteria.AddFilter(filter3);
It doesn't work correct
How I must add filter to QueryExpression, than realize condition
((.... and....) or (....and...) and () )
*This post is locked for comments
I have the same question (0)