워크플로우 데이터 오브젝트 및 목록 워크플로우 데이터 오브젝트의 인스턴스는 워크플로우 프로세스가 규정되는 즉시 생성되며 해당 프로세스가 완료될 때까지 존재합니다. 따라서 이러한 워크플로우 데이터 오브젝트 인스턴스는 해당 프로세스 인스턴스 라이프사이클 전체에서 활동(예: BPO 메소드에 데이터 전달)과 상태 전이(예: 상태 전이 조건 평가에 데이터 사용 가능)에 사용할 수 있습니다.
Context_RuntimeInformation 워크플로우 데이터 오브젝트의 enactingUser 속성은 워크플로우 프로세스가 규정되는 애플리케이션의 조치가 있는 사용자의 사용자 이름으로 설정됩니다. 이 경우 워크플로우 프로세스 인스턴스에서 순차적으로 BPO 메소드를 호출할 때 동일한 값이 트랜잭션에 지정되지 않습니다. 이는 애플리케이션 서버에서 자동 활동(예: BPO 메소드)을 호출할 때 워크플로우 엔진에 트랜잭션 경계 때문에 발생합니다. 이러한 호출의 비동기 특성과 애플리케이션 코드에 대한 호출이 자체 트랜잭션에 있어야 한다는 요구사항 때문에 BPO 메소드는 워크플로우를 프로세스를 규정한 사용자가 아니라 워크플로우 엔진(SYSTEM 사용자)가 먼저 호출합니다. 실제 비즈니스 환경에서는 워크플로우를 규정한 사용자가 해당 BPO 메소드를 호출했다는 것을 알지 못할 수 있습니다.
이와 마찬가지로 워크플로우 프로세스 인스턴스를 규정한 사용자가 상위 프로세스에서 호출할 수 있는 모든 서브플로우 프로세스 인스턴스에 전달되지 않습니다. 모든 서브플로우 프로세스 인스턴스에 상위 프로세스 인스턴스를 규정한 사용자가 필요할 경우 해당 서브플로우 프로세스에 대한 입력 맵핑에 워크플로우 데이터 오브젝트 속성을 사용하여 명시적으로 전달해야 합니다.
워크플로우 프로세스 인스턴스에서 병렬 자동 활동을 실행할 경우 워크플로우 데이터 오브젝트 속성 인스턴스 데이터를 업데이트하려면 주의를 기울여야 합니다. 이러한 자동 활동이 동일한 BPO 메소드를 호출하고 해당 메소드가 동일한 워크플로우 데이터 오브젝트 속성 데이터를 업데이트하려고 하면 데이터베이스 레코드 교착 상태가 발생할 수 있습니다. 워크플로우 프로세스 디자이너는 병렬로 실행되는 자동 활동이 동일한 워크플로우 데이터 오브젝트 속성을 업데이트하지 않도록 워크플로우 프로세스 정의를 설계하여 이러한 상황을 해결해야 합니다.