Hmm, I was again playing around with two different Web-Services - Customer Page and Contact Page.
My idea was first to create a new Contact in async-mode. In a trigger (Adderss - Onvlidate) in my Contact-Table that is called from this Webservice, I had a sleep(2000) statement to wait two seconds. After the sleep-statement I made a Customer.GET-Statement for a customer #78100 that should not exist at that moment the Create-Async(cont)-Method is executed. The next C# statement was an async-call of the Customer-Webservice method to create a customer with # 78100. The C#-code looks like:
ContWS.Contact_Service contProxy = new ContWS.Contact_Service();
CustWS.customer_Service custProxy = new CustWS.customer_Service();
ContWS.Contact cont = new ContWS.Contact();
cont.Address = "Address of Contact";
contProxy.CreateAsync(cont);
CustWS.customer cust = new CustWS.customer();
cust.No = "78100";
cust.Address = "Address of Customer";
custProxy.CreateCompleted += new WindowsFormsApplication1.CustWS.CreateCompletedEventHandler(custProxy_CreateCompleted);
custProxy.CreateAsync(cust);
In the Contact-Table in the OnValidate-Trigger of the field Address I do have the following source code:
SLEEP(2000);
IF Customer.GET('78100') THEN
"Address 2" := Customer.Address;
After my C#-Code is executed, the field "Address 2" of my Contact has the same value as the Address-field of my Customer i.e. "Address of Customer". Does this mean that the Contact-Webservice was able to perform a dirty read of the record that was going to be created by the Customer-Webservice or when and how have the database-transactions taken place in my example?
Regards,
Jut