Oracle SOA Process for orders management - business-process-management

This is about Oracle Oracle SOA 12c & BPEL Process
Actually, I work in project which allows the management of customer orders, each order passes through a seem of states. The project consisting of two parts :
Frontend/Backend application witch allow users to manage orders (create, change order state, ...)
Oracle SOA project witch contains different process
My objective is create new Oracle SOA Process (BPEL) in order to manage orders states:
Order states
Workflow :
After the creation of new order in the application Frontend/Backend, a new instance of Oracle BPEL process must be launched with the state : UNCONFIRMED
After each change of the created order state, the Oracle BPEL launched process (linked to the order) must change the state.
I note that many orders can be launched in the same time, so each process must be linked with a single order.
Questions :
How can I implement this Oracle Process ? with which component can I represent order states ? How can I link a created Order with an instance of Process ? with which mechanism can I change the state of process (linked with order)
Thanks

Related

What are the table relationships by member, task and effort time in Team Foundation Server?

I need to extract some data from TFS data base and I can't find the tables that I need.
We using TFS for measure productivity (projects, user stories, tasks, etc) and I must do an productivty indicators with Excel connecting directly to TFS data base indicating the effort time by user and task.
I have the memberships table but no the relations to workitems/task and the effort time
SELECT * FROM [ADObjects] where ObjectCategory = 2 order by DisplayName
Version of TFS 15.117.27024.0
EDIT
Ok, I finded the way to access the data that I wanted with a sql query:
SELECT o.SamAccountName as Usuario
,MAX(Microsoft_VSTS_Common_ClosedDate) AS Fecha
,[WorkItem]
,SUM([Microsoft_VSTS_Scheduling_CompletedWork]) as Horas
,MAX([System_Rev]) AS UltimoMovimiento
,System_Id as WorkItemId
FROM [tfs_warehouse].[dbo].[WorkItemHistoryView] wi
join [Tfs_OurDomain].dbo.ADObjects o on o.DisplayName = wi.System_AssignedTo and o.DomainName = 'DomainName'
where System_State = 'Closed' and System_WorkItemType in ('Bug','Task') and System_AssignedTo is not null
and o.SamAccountName = 'MemberName'
and Microsoft_VSTS_Common_ClosedDate between '20180501' and '20181101'
group by [WorkItem],o.SamAccountName,System_Id
order by o.SamAccountName asc
Querying directly against the TFS_*Collection databases and the TFS_Configuration databases is not supported. The schema can change between even minor updates and breaking changes have occurred in past releases at regular intervals. Running queries against this database may negatively impact the performance of your TFS installation.
To support reporting TFS has shipped with a Reporting capability. The TFS Warehouse (if enabled on your installation) contains most of the data you're looking for in an easy queriable format. These warehouse tables contain a more limited set of data and the schema is kept the same within major releases and hasn't changed much even between different major releases. The process hasn't changed since it's introduction but the functionality is on it's way out when the Azure DevOps Analytics Service is available for on-premise TFS installations. This will expose the data through an ODATA feed.
The analytics service is currently forecasted for TFS 2019:
Analytics - Available for Azure DevOps Server Reporting 2019
If the Warehouse Cube isn't available for your TFS installation, you can use the TFS REST API's to query all the data you're after. The following API's will give you access to the data you need:
Query Work Items Revisions for Reporting.
Query Work Item Links for Reporting
Map work to teams
Query teams & team members
Excel can be extended through .NET and using that functionality to query the REST API you can then use the .NET Extensibility in Excel to populate lists in excel with the data from these REST APIs and drive your reports from those lists.

How will Windows Account Change Affect TFS Accounts?

We are running TFS 2012. Our organization is currently creating new accounts for everyone as part of a migration.
What I know is that everyone will have two accounts listed in AD for a while:
OldDomain\DoeJ
NewDomain\DoeJ
This brings me to believe that SID will be different, among other things.
My question is, how would this affect our TFS environment? Will we lose any history associated with particular users? Will I have to go through each work item and reassign it to the new Windows account? Is there any way I can preserve this data?
Thanks
You could use Identities Command which lists or changes the security identifier (SID) of users and groups in your deployment of TFS. You might need to change or update the SID for users and groups in one of the following scenarios:
changing the domain of your deployment
changing from a workgroup to a domain or from a domain to a workgroup
migrating accounts across domains in Active Directory
Even though it's a powerful tool, but it has certain limitations. To help ensure a successful move, make sure that you understand the following requirements:
Once a user account is present in TFS, it cannot be removed or have another account mapped to it. For example, if you are moving
DomainA/UserA to DomainB/UserB, the Identities command would only
work to migrate the user if DomainB/UserB is not already present in
TFS.
Because the members of the local Administrators group are automatically added to TFS, make sure to remove any accounts that you
want migrated from that group before you change the domain or
environment.
Suggest you read up about this tutorial as part of planning your move. You could also take a look at this blog : Migrating TFS Server or Collection to another domain. Be careful do not add the user such as NewDomain\DoeJ to TFS first, after upgrade SID, the history will keep without any problem.
Moreover, TFS use a background synchronization job, scheduled every hour, to look for changes in Active Directory (or the local machine workgroup if the server is not domain joined). You can force the job to run using any of these techniques.

Add jobs to a customer in QuickBooks DeskTop using QBFC

I have a C# application and I want to add jobs to a customer using QBFC 12.0.
To explain further, say I have an object Customer with a nested object Jobs (here jobs are 5 lets say), first the customer syncs on QuickBooks Desktop and then its corresponding Jobs.
To add a job to a customer using QBFC you need to use a CustomerAdd object of QBFC. For entering job you need to add the listID of parent or ParentFullName of the job. QBFC will take care of generating the sublevel for the job you need to enter.
ICustomerAdd CustQ = default(ICustomerAdd);
CustQ = requestSet.AppendCustomerAddRq();
CustQ.Name.SetValue(jobName);
CustQ.ParentRef.FullName.SetValue(parentFullName);
IMsgSetResponse responseSet = sessionManager.DoRequests(requestSet);

Associate a username with a workflow in the persistence store?

Im new to WF and i'm trying to build an asp.net MVC web site with several WF "wizards". All users will be logged in using forms authentication. The users will have many different WF workflows they can start and come back and finish at a later date. I've added an SQL persistence store to store the state of the workflow which works so far. However it seems to me you need to know the guid of the workflow in order to reload it and carry on.
Is there a way i can add the users username to the persistence so that i could list the users currently active work flows so they can carry on where they left off? Each user could have several active work flows at any one time.
The persistence store supports Persistence IO Participants which can supply values to be persisted along with the workflow. The code is a little tricky but there are samples available, just look for PersistenceIOParticipant.

Tracking or Notifying DB Changes - Inserts and Updates mostly

How do I track or get notified whenever a record is inserted or updated in a DB? I would like to notify an external application of the changes in near real time whenever such changes in DB occur. Are there DBMS independent and application programming language independent ways of doing this? If not, then is it possible with MS Access and MS SQL Server in particular? I'm looking to avoid continuous polling of DB of course.
With SQL Server it is possible to load a DLL within SQL Server itself and call methods from this with extended stored procedures. The DLL could then notify other applications - usually via a TCP socket.
I think the latest version of Microsoft SQL Server allows you to raise events in your .NET code based on server conditions and events. I haven't tried it, and I haven't heard of any 'DBMS independent' way of doing this (without polling DB every X milliseconds).
With MS-Access, I keep track of record changes or record additions with fields in the main table that store the user name and date when the record is created or updated.
You need to use a windows API to record the user name, usually run when switchboard form is opened.
I am digging to find a away to track specific changes. My data base is used for project management. I would like to keep track of what specifically was changed, not just who and when that I have now.
I think this meets the requirements of the original question. I can later add the windows API that reads the name of the user.
Private Sub Form_BeforeInsert(Cancel As Integer)
Me!UserCreated = UCase(CurrentUser())
Me!DateCreated = Now()
End Sub
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me!DateModified = Now()
Me!UserModified = UCase(CurrentUser())
End Sub
-- Mike
To do this with SQL Server, you use the Notification Service - write a dll that subscribes to notifications from the DB for data updates which you can process in some way.
However, MS has said that they are removing this from SQL Server 2008.
Oracle has something similar (though they tend to leave their technology in place), but I've not seen anything that is database-neutral.

Resources