cancel
Showing results for 
Search instead for 
Did you mean: 

BPMN file storage path.,

sathish1
Champ in-the-making
Champ in-the-making
Hoping this is a very simple miss on my part.

So we create the BPMN 2.0 file in the resources directory of a web project. From the web project we are calling the startinstance to start the process and I see for every version of a process there is a record that is created in the ACT_RE_PROCDEF and ACT_GE_BYTEARRAY. But the table entry has the bpmn file's physical location for example : <Code>"C:\workspaces\eclipse\default\sathish\trackerweb\target\classes\refundprocessbpmn\DocStore.bpmn20.xml"</Code>, is there are better way to get this data pulled from a http request or something? I see there will be some security issues for the project am working on to read an xml file in the server farm.,

Tghts and recommendations please.,
3 REPLIES 3

trademak
Star Contributor
Star Contributor
I'm not following. Activiti stores a BPMN XML file in the database, not on the file system.
So I don't know what you are referring to. Could you elaborate a bit more?

Best regards,

sathish1
Champ in-the-making
Champ in-the-making
Yes. BPMN files are stored as bytearray in the table. But my question is the column next to the bytearray., where the file name is defined as in plain physical location. Let me try Going give this a try to see if am doing a better job., Correct me if am wrong in my assumptions here as am working thro this question.

When I start the process framework reads the activiti config file and loads all the BMPN files., for example in this following piece of code, framework loads all the bpmn files that is in the classpath of "/myprocessbpmn"

<code>
<bean id="processEngineConfiguration" class="com.company.workflow.CustomProcessEngineConfiguration">
        <property name="databaseType" value="H2" />
        <property name="databaseTablePrefix" value="ACTIVITI." />
        <property name="databaseSchema" value="ACTIVITI" />
        <property name="dataSource" ref="activiti-dataSource" />
        <property name="transactionManager" ref="transactionManager" />
        <property name="databaseSchemaUpdate" value="false" />
        <property name="jobExecutorActivate" value="true" />
        <property name="deploymentResources" value="classpath*:myprocessbpmn/*" />
</bean>

</code>
when it loads the files framework calls the ByteArray.xml file to insert all the records and reads the file in classpath and when it loads the name column is putting the physical location of the file where it loaded it from.,
<code>
"C:\workspaces\eclipse\default\sathish\trackerweb\target\classes\refundprocessbpmn\DocStore.bpmn20.xml"
</code>

Instead of the physical location of the file, will it be possible to load all the xml definitions from a http request, say for example I load all my xml in a web host location

<code>
http://www.mycompany.com/loadallxml/case1.xml
</code>

Thanks for your help.

martin_grofcik
Confirmed Champ
Confirmed Champ
Hi,
Content of the file is stored in the DB (ACT_GE_BYTEARRAY).
Instead of the physical location of the file, will it be possible to load all the xml definitions from a http request, say for example I load all my xml in a web host location
yes, it would be possible - you have to add this support to the e.g. org.activiti.spring.SpringProcessEngineConfiguration#autoDeployResources

Regards
Martin