2016-05-19 8 views
0

ロケーションの内容を表示するためにGeneric Inquiryを作成しました。Webサービスエンドポイントを介した汎用照会のフィルタリング

GI Tables Setup GI Relations Setup

条件

INLocationStatus.QtyOnHand, Is Greater Than, 0 

結果グリッド

InLocationStatus, InventoryID, INLocationStatus.InventoryID 
InLocationStatus, LocationID, INLocationStatus.LocationID 
InLocationStatus, QtyAvail, InLocationStatus.QtyAvail 
InLocationStatus, QtyOnHand, InLocationStatus.QtyOnHand 
InLocationStatus, SiteID, InLocationStatus.SiteID 
InventoryItem, Descr, InventoryItem.Descr 

私たちは、Webサービスのエンドポイントの定義にこれを追加し、成功したとGIを呼び出すことができます次のコード。

var temp = c.GetList(new OzLocationDetails {}, false).Cast<OzLocationDetails>(); 

我々はこれにフィルタ条件を追加しようとするとしかし、我々は、エラーを取得するには

Location = new StringValue { Value = "OZRECV" } 

を返し、エラーが返され、私はそれが直感に反する聞こえる知っているが、取得するために

An unhandled exception of type 'System.ServiceModel.FaultException' 
occurred in mscorlib.dll 

Additional information: System.Web.Services.Protocols.SoapException: 
Server was unable to process request. ---> 
PX.Api.ContractBased.OperationDoesNotSupportValuesException: 


Operation does not support values. 

at PX.Api.ContractBased.EntityService.GetList(EntityGateBase gate, 
String version, String name, EntityImpl entity, Boolean returnFullEntities, 
Boolean ignoreValueFields, PXGraph graph) 

at PX.Api.ContractBased.Soap.EntityGate.GetList(Entity entity, 
Boolean returnFullEntities) 

--- End of inner exception stack trace --- 

答えて

1

です一般的な問い合わせの内容と結果を取得するには、Put()コールを行う必要があります。この呼び出しは、一般的な問い合わせによって返されたすべての行を含むDetailsプロパティを持つ単一のエンティティを返します。

+0

Gabriel、私はコードをPutに変更し、エントリのリストではなく最初のエントリのみを返しました。 –

+0

さらにGIでGetListを実行すると、すべての結果が返されますが、問題はフィルタリングできません。 –

+0

はい、1つのエンティティが返されますが、エンティティには反復可能な配列であるDetailsプロパティがあります。 – Gabriel