Inflectra Customer Forums: Requirement_Update using only some properties (SOAP) (Thread) Hello, I was wondering if it was possible to update a requirement using only a subset of the available properties? For example, when I want to update only the description of a requirement, I thought using the following SOAP envelope would work. My new description 3351 Unfortunately it doesn't. It seems the server wants me to send all the nullable properties set to nil. Here is the complete response I get (sorry, in French) a:InternalServiceFault Un objet qui autorise la valeur Null doit posséder une valeur. Un objet qui autorise la valeur Null doit posséder une valeur. à System.Nullable`1.get_Value() à Inflectra.SpiraTest.Web.Services.v4_0.ImportExport.Requirement_Update(RemoteRequirement remoteRequirement) à SyncInvokeRequirement_Update(Object , Object[] , Object[] ) à System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[] outputs) à System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc rpc) à System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc rpc) à System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc rpc) à System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) System.InvalidOperationException The main message in English would probably be: Nullable object must have a value. Is there no way around this? It would be very convenient if the server could be a little bit smarter and update only the properties which I care about, and leave the other ones unmodified. This is also the way that Requirement_Create2 works. Thanks in advance for any help / tips! en-US(C) Copyright 2006-2024 Inflectra Corporation.support@inflectra.com/Computers/Software/Project_Management//Computers/Software/Quality_Assurance/KronoDesksupport@inflectra.comhttp://www.inflectra.com/kronodesk/forums/threads120/Support/Forum/spirateam/issues-questions/888.aspxthreadId=888Maxim Cournoyer (maxim.cournoyer@averna.com)Requirement_Update using only some properties (SOAP) Hello, I was wondering if it was possible to update a requirement using only a subset of the available properties? For example, when I want to update only the description of a requirement, I thought using the following SOAP envelope would work. My new description 3351 Unfortunately it doesn't. It seems the server wants me to send all the nullable properties set to nil. Here is the complete response I get (sorry, in French) a:InternalServiceFault Un objet qui autorise la valeur Null doit posséder une valeur. Un objet qui autorise la valeur Null doit posséder une valeur. à System.Nullable`1.get_Value() à Inflectra.SpiraTest.Web.Services.v4_0.ImportExport.Requirement_Update(RemoteRequirement remoteRequirement) à SyncInvokeRequirement_Update(Object , Object[] , Object[] ) à System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[] outputs) à System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc rpc) à System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc rpc) à System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc rpc) à System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet) System.InvalidOperationException The main message in English would probably be: Nullable object must have a value. Is there no way around this? It would be very convenient if the server could be a little bit smarter and update only the properties which I care about, and leave the other ones unmodified. This is also the way that Requirement_Create2 works. Thanks in advance for any help / tips! Thu, 17 Apr 2014 15:36:57 -04002014-05-10T17:17:50-04:00/Support/Forum/spirateam/issues-questions/888.aspxmessageId=1620David J (support1@inflectra.com) Hi Maxim For concurrency reasons you need to do the following: Do a Requirement_Retrieve(r Hi Maxim For concurrency reasons you need to do the following: Do a Requirement_Retrieve(requirementId) first to get the existing RemoteRequirement object Update the fields you want to change Then use Requirement_Update(remoteRequirement) to send the updated data back. Regards Adam Mon, 21 Apr 2014 14:01:41 -04002014-04-21T14:01:41-04:00/Support/Forum/spirateam/issues-questions/888.aspx#reply1620messageId=1642Maxim Cournoyer (maxim.cournoyer@averna.com) Hello Adam, and thank you for your reply. As per your recommendations I retrieved a compl Hello Adam, and thank you for your reply. As per your recommendations I retrieved a complete copy of the remoteRequirement by using the Requirement_Retrieve command. I then parsed the returned XML to get the desired single requirement element, modified it and tried to update it on the server using Requirement_Update. It worked, but only after I adapted the following: The XML namespace (xmlns) of the returned requirement object is set to a="http://schemas.datacontract.org/2004/07/Inflectra.SpiraTest.Web.Services.v4_0.DataObjects". For some reasons, I needed to set it instead to "https://www.inflectra.com/SpiraTest/Services/v4.0/" for the server to accept it (else I would get "The object reference is not set to an instance of an object"). The element node's name for the requirement object was "RemoteRequirement". However I would also get "The object reference is not set to an instance of an object" before I changed the element node's name to "remoteRequirement". Here is an excerpt of the original SOAP response containing the requirement of interest, as returned by the server. Notice the namespace of the RemoteRequirement node and also the capitalized R in its name. 1 2014-03-26T20:09:58.233 [ . . . ] After the changes discussed above, the functional Requirement_Update SOAP message looks like this: 1 2014-04-22T19:01:22.323 [ . . . ] Did I just find some issues in the SOAP-WSDL message returned by the SpiraTeam server or I am doing something wrong? Regards, Maxim Sat, 10 May 2014 17:17:50 -04002014-05-10T17:17:50-04:00/Support/Forum/spirateam/issues-questions/888.aspx#reply1642