テーブルを読み込もうとしていますが、これが私の WHERE 句です。
"((DISPO EQ 'E10' OR DISPO EQ 'EAA') AND (GLTRP >= '20150701' AND GLTRP <= '20150730'))"
私も試してみました
"(DISPO EQ 'E10' OR DISPO EQ 'EAA') AND (GLTRP >= '20150701' AND GLTRP <= '20150730')"
と
"(DISPO EQ 'E10' OR DISPO EQ 'EAA') AND GLTRP >= '20150701' AND GLTRP <= '20150730'"
=、EQ、>=、GL などの使用をいじりましたが、同じエラーが発生し続けます
An exception of type 'SAP.Middleware.Connector.RfcAbapRuntimeException' occurred in sapnco.dll but was not handled in user code
Additional information: A comparison value is missing from the dynamic WHERE condition.
ここで、WHERE 句を分割して別々に試してみると、すべて正常に動作します。
DISPO EQ 'E10' OR DISPO EQ 'EAA' // This works
と
GLTRP >= '20150701' AND GLTRP <= '20150730' // This also works.
良い測定のために、これも機能します
GLTRP BETWEEN '20150701' AND '20150730'
では、元の WHERE 句の何が問題になっているのでしょうか?
更新: コードの実行方法。
IRfcFunction BapiGetOrderStatus = SapRap.CreateFunction("BBP_RFC_READ_TABLE");
BapiGetOrder.SetValue("QUERY_TABLE", "AFKO")
BapiGetOrder.SetValue("DELIMITER", ";");
BapiGetOrder.SetValue("ROWCOUNT", "30");
// Parameter table FIELDS contains the columns
IRfcTable fields = BapiGetOrders.GetTable("FIELDS");
fields.Append();
fields.SetValue("FIELDNAME", "AUFNR");
fields.Append();
fields.SetValue("FIELDNAME", "GLTRP");
fields.Append();
fields.SetValue("FIELDNAME", "GSTRP");
fields.Append();
fields.SetValue("FIELDNAME", "GAMNG");
felds.Append();
fields.SetValue("FIELDNAME", "STLBEZ");
fields.Append();
fields.SetValue("FIELDNAME", "DISPO");
fields.Append();
fields.SetValue("FIELDNAME", "APRIO");
fields.Append();
fields.SetValue("FIELDNAME", "IGMNG");
fields.Append();
fields.SetValue("FIELDNAME", "IASMG");
IRfcTable optsTable = BapiGetOrder.GetTable("OPTIONS");
optsTable.Append();
optsTable.SetValue("TEXT", " ( ( DISPO EQ 'E10' OR DISPO EQ 'EAA' ) AND ( GLTRP >= '20150701' AND GLTRP <= '20150730' ) ) ");
BapiGetOrders.Invoke(SapRfcDestination); // <------- EXCEPTION HERE
IRfcTable ItemsTable = BapiGetOrders.GetTable("DATA");