PwsCheckProjectorLocks

Overview


This web service can be used to check the locked state of an entity or set of entities. It can also, optionally, steal any existing locks on the specified entity or entities. It can be used to determine whether your existing lock is still valid (has not expired and has not been stolen) – by specifying a Projector lock set id, or just to determine whether the specified entity or entities are already locked or not – by not specifying a Projector lock set id.

Request Format


PwsCheckProjectorLocks Request

Request Elements


Element

Data Type

Required?

Description


RequestId

Int32

No

Click here for more information

1

SessionTicket

String

Yes

Click /wiki/spaces/QA/pages/11796515 for more information

AXMhtleRqwAazB/BUJaCKA==

Locks

PwsProjectorLockRequest [1..100]

Yes

This structure contains the complete set of entities to check for existing locks. 


ProjectorLockSetId

Int32

No

If you hold an existing lock set over these entities and want to verify that the lock set is still valid, specify the lock set id here. Otherwise leave this null or omit it. Note if you do hold a lock set and do not specify the lock set id here, the service will report that the entities are currently locked. Click here for more information


LocksToSteal

PwsEntityLockSummary [1..100]

No

The detailed information of the locks that are to be stolen. If not specified, the request will fail if any requested locks are already held. If specified, the information supplied must exactly match the current state of existing locks or the attempt to steal the existing locks will fail. Typically, this service is invoked with LocksToSteal empty or null. If there are existing locks, they will be returned in the LockHolders member of PwsFault. This data can then be sent, as is, back to the server in a second invocation of this service, as LocksToSteal, if the caller desires to steal the locks.


Request Usage Example(s)


Example 01 - Check Locks without Stealing
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pws="http://projectorpsa.com/PwsProjectorServices/" xmlns:req="http://projectorpsa.com/DataContracts/Requests/" xmlns:com="http://projectorpsa.com/DataContracts/Shared/Common/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsCheckProjectorLocks>
         <pws:serviceRequest>
            <req:RequestId>1</req:RequestId>
            <req:SessionTicket>AXMhtleRqwAazB/BUJaCKA==</req:SessionTicket>
            <req:Locks>
               <com:PwsProjectorLockRequest>
                  <com:EntityIdentity>
                     <com:EntityCode>P001468-001</com:EntityCode>
                     <com:LockType>P</com:LockType>
                  </com:EntityIdentity>
               </com:PwsProjectorLockRequest>
            </req:Locks>
         </pws:serviceRequest>
      </pws:PwsCheckProjectorLocks>
   </soapenv:Body>
</soapenv:Envelope>
Example 02 - Check Locks with Stealing
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pws="http://projectorpsa.com/PwsProjectorServices/" xmlns:req="http://projectorpsa.com/DataContracts/Requests/" xmlns:com="http://projectorpsa.com/DataContracts/Shared/Common/">
   <soapenv:Header/>
   <soapenv:Body>
      <pws:PwsCheckProjectorLocks>
         <pws:serviceRequest>
            <req:RequestId>1</req:RequestId>
            <req:SessionTicket>AXMhtleRqwAazB/BUJaCKA==</req:SessionTicket>
            <req:Locks>
               <com:PwsProjectorLockRequest>
                  <com:EntityIdentity>
                     <com:EntityCode>P001468-001</com:EntityCode>
                     <com:LockType>P</com:LockType>
                  </com:EntityIdentity>
               </com:PwsProjectorLockRequest>
            </req:Locks>
            <req:LocksToSteal>
               <com:PwsEntityLockSummary>
                  <com:EntityIdentity>
                     <com:EntityCode>P001468-001</com:EntityCode>
                     <com:LockType>P</com:LockType>
                  </com:EntityIdentity>
                  <com:EntityLockSummary>
                     <com:PwsEntityLockSummaryItem>
                        <com:LockCount>1</com:LockCount>
                        <com:LockHolderUserIdentity>
                           <com:UserDisplayName>IT Manager</com:UserDisplayName>
                           <com:UserReferenceSystemId>IT Manager</com:UserReferenceSystemId>
                        </com:LockHolderUserIdentity>
                        <com:MostRecentLockAcquisitionTimestamp>2018-10-16T19:27:26.967Z</com:MostRecentLockAcquisitionTimestamp>
                     </com:PwsEntityLockSummaryItem>
                  </com:EntityLockSummary>
               </com:PwsEntityLockSummary>
            </req:LocksToSteal>
         </pws:serviceRequest>
      </pws:PwsCheckProjectorLocks>
   </soapenv:Body>
</soapenv:Envelope>

Response Format


PwsCheckProjectorLocks Response

Response Elements

Element

Data Type

Description

Sample Data

Messages

PwsMessage[]

The web service response status and message. Click here for more information


ResponseId

Int32

Click here for more information

1

Status

RequestStatus

Click here for more information

Ok

ServerTimestampUtc

DateTime

Click here for more information

2018-10-17T16:05:06.4708496Z

Locks

PwsProjectorLock[1..100]

The complete set of information about the lock(s)


Response Usage Example(s)


Example 01 - Check Locks without Stealing
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <PwsCheckProjectorLocksResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
         <PwsCheckProjectorLocksResult xmlns:a="http://projectorpsa.com/DataContracts/Responses/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <Messages xmlns="http://projectorpsa.com/CommonServices/" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
            <ResponseId xmlns="http://projectorpsa.com/CommonServices/">1</ResponseId>
            <Status xmlns="http://projectorpsa.com/CommonServices/">Ok</Status>
            <ServerTimestampUtc xmlns="http://projectorpsa.com/CommonServices/">2018-10-17T16:05:06.4708496Z</ServerTimestampUtc>
            <a:Locks xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/">
               <b:PwsProjectorLock>
                  <b:EntityIdentity>
                     <b:EntityCode>P001468-001</b:EntityCode>
                     <b:EntityId i:nil="true"/>
                     <b:EntityUid>1152921504607429941</b:EntityUid>
                     <b:LockType i:nil="true"/>
                  </b:EntityIdentity>
                  <b:EntityTimestamp>AAAAABCI2CY=</b:EntityTimestamp>
                  <b:LockStolenFlag>false</b:LockStolenFlag>
                  <b:StolenLocks/>
               </b:PwsProjectorLock>
            </a:Locks>
         </PwsCheckProjectorLocksResult>
      </PwsCheckProjectorLocksResponse>
   </s:Body>
</s:Envelope>
Example 02 - Check Locks with Stealing
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <PwsCheckProjectorLocksResponse xmlns="http://projectorpsa.com/PwsProjectorServices/">
         <PwsCheckProjectorLocksResult xmlns:a="http://projectorpsa.com/DataContracts/Responses/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
            <Messages xmlns="http://projectorpsa.com/CommonServices/" xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/"/>
            <ResponseId xmlns="http://projectorpsa.com/CommonServices/">1</ResponseId>
            <Status xmlns="http://projectorpsa.com/CommonServices/">Ok</Status>
            <ServerTimestampUtc xmlns="http://projectorpsa.com/CommonServices/">2018-10-16T19:36:50.6646738Z</ServerTimestampUtc>
            <a:Locks xmlns:b="http://projectorpsa.com/DataContracts/Shared/Common/">
               <b:PwsProjectorLock>
                  <b:EntityIdentity>
                     <b:EntityCode>P001468-001</b:EntityCode>
                     <b:EntityId i:nil="true"/>
                     <b:EntityUid>1152921504607429941</b:EntityUid>
                     <b:LockType i:nil="true"/>
                  </b:EntityIdentity>
                  <b:EntityTimestamp>AAAAABCnqY8=</b:EntityTimestamp>
                  <b:LockStolenFlag>true</b:LockStolenFlag>
                  <b:StolenLocks>
                     <b:PwsEntityLockSummaryItem>
                        <b:LockCount>1</b:LockCount>
                        <b:LockHolderUserIdentity>
                           <b:UserDisplayName>IT Manager</b:UserDisplayName>
                           <b:UserId i:nil="true"/>
                           <b:UserReferenceSystemId>IT Manager</b:UserReferenceSystemId>
                           <b:UserUid>1152921504607134339</b:UserUid>
                        </b:LockHolderUserIdentity>
                        <b:MostRecentLockAcquisitionTimestamp>2018-10-16T19:34:20.55Z</b:MostRecentLockAcquisitionTimestamp>
                     </b:PwsEntityLockSummaryItem>
                  </b:StolenLocks>
               </b:PwsProjectorLock>
            </a:Locks>
         </PwsCheckProjectorLocksResult>
      </PwsCheckProjectorLocksResponse>
   </s:Body>
</s:Envelope>

PwsCheckProjectorLocks - Common Errors and Warnings

ErrorNumber

ErrorCode

ErrorText

10126InvalidEnumerationValueSpecifiedAn invalid value was specified for LockType. Valid values are E, C, P, R, RT, CP, CB, I.
50024EntityNotFoundEntity (entity-reference-type) was not found.
50469EntityAlreadyLockedOne or more existing locks prevent acquisition of requested lock.