cancel
Showing results for 
Search instead for 
Did you mean: 

check if object is locked by user ?

itaKraus
Explorer
0 Kudos
297

hi
Hello everyone

I register a withdrawal
and receives into the variable every SALES ORDER according to the parameters I chose

Right now I want to go through all the results obtained from the fetch
and check whether the record is locked by a system user or not

 

How to write such a code in ABSL

I hope you can send me a serial code example!

I want to verify a lock on the SALES ORDER object

itaKraus
Explorer
0 Kudos
HI Thank you very much for wanting to help and donating your time The option you suggested is not available to me I can't register salesOrder.IsLockedByUser() I am attaching the code with which I thought to perform the test Maybe this will give you a direction on how I can check if an adder is locked The problem is in the code that when it runs in a loop and checks whether an order is locked or not After he found some locked order It does not continue to recheck properly but as if treating all other orders as if they were locked For example if order number 150 is currently locked So all orders after this number are also considered locked below is my code : ------------------------------------------------ var currentDate = Context.GetCurrentGlobalDateTime(); var currentDate1 = currentDate.ConvertToLocalNormalisedDateTime(); var SalesOrders = SalesOrder.QueryByElements; var SalesOrderDate_SelParams = SalesOrders.CreateSelectionParams(); SalesOrderDate_SelParams.Add(SalesOrders.Status.ItemListCustomerOrderLifeCycleStatusCode, "I", "EQ", "1"); SalesOrderDate_SelParams.Add(SalesOrders.Status.ItemListCustomerOrderLifeCycleStatusCode, "I", "EQ", "2"); var SalesOrderData_Results = SalesOrders.Execute(SalesOrderDate_SelParams); var SalesOrderData_ResultsCopy = SalesOrders.Execute(SalesOrderDate_SelParams); foreach (var SO in SalesOrderData_ResultsCopy) { var uuid; uuid = Library::UUID.ParseFromString(SO.UUID.content.ToString());// sales order id var messages; var lock; lock = BOAction.CheckLock("SalesOrder", "http://sap.com/xi/AP/CRM/Global", "Root", uuid); messages = lock.MessageTypeItem; var validationFailed : Common:Indicator=false; var a; if (!lock.IsInitial() && messages.Count() > 0) { foreach (var message in messages) { if (message.MessageSeverityText == "E" && message.MessageID.content == "CL_CDA_DOCHD/000") { validationFailed = true; a = SalesOrderData_Results.Remove(ins => ins.ID.content == SO.ID.content); SalesOrderData_Results = a; lock.Clear(); } } messages.Clear(); } } ------------------------------------------------ I mean, actually my code is not completely correct and I probably don't check it in the right way Anyone who can help me, I would be very happy thanks
View Entire Topic
frank_hoffmann
Discoverer
0 Kudos

Hi Robert,

we will check your comment "But there was a hint, that the software is internally available".
Are you looking for a library for Linux X86_64 only, or for any other platform(s)?

Regards
Frank