• Tidak ada hasil yang ditemukan

BAB IV HASIL DAN PEMBAHASAN

4.3. Iterations Phase (Fase Pengulangan)

4.3.2. Iteration 1

4.3.2.2. Membuat Desain Sederhana

Pengembangan workflow dilakukan dengan menggunakan gambar 2.2 sebagai rujukan.

a. Workflow Task Model

Gambar 4.5. ModelWorkflow Task

Workflow model pada gambar 4.9. merupakan metadata atau properti dari tiap-tiap tugas yang ada pada workflow

b. WorkflowDiagram

Gambar 4.6. DiagramWorkflowPada JBPM Designer

Workflow diagram pada gambar 4.10. merupakan proses alur kerja dokumen proposal skripsi, dimana digambarkan menggunakan notasi JBoss BPM.

4.3.2.3. Implementasi

a. Membuat Proyek Ektensi Untuk WorkflowDokumen

Proyek eksensi Alfresco dibuat dalam Eclipse IDE serta

menggunakan plugin JBPM Graphical Process Designer.

Selain Eclipse untuk pengembangan Alfresco juga dibutuhkan Alfresco SDK, yang sesuai dengan versi Alfresco yang digunakan untuk dijadikan sebagai library atau base codeyang

dapat dilakukan extendatau replace. Dalam pembuatan project

perlu diperhatikan struktur folder untuk Alfresco, yaitu :

|config|alfresco|extension|model |config|alfresco|extension|workflow |data |src|java |src|web|jsp|extension |src|web|META-INF |src|web|skripsi|images

b. Membuat Workflow TaskModel

Task model dibuat dengan membuat file

taWorkflowModel.xml pada folder config| alfresco| extension| model|, sesuai dengan desain workflow task model yang telah dibuat.

Pembuatan task model dimulai dengan pendefinisian model untuk workflowdengan membuat model baru.

<?xml version="1.0" encoding="UTF-8"?> <model name="tawf:taworkflowmodel"

xmlns="http://www.alfresco.org/model/dictionar y/1.0">

Setelah pendefinisian dilakukan, kemudian dilakukan import terhadap model Alfresco yang akan di-extend untuk model

workflow.

<import

uri="http://www.alfresco.org/model/bpm/1.0"

prefix="bpm" />

Selanjutnya membuat pendefinisian terhadap namespace dari model.

<namespace

uri="http://www.skripsi.com/model/workflow/1.0 " prefix="tawf" />

Pendefinisian model, import, dan namespacemerupakan aturan yang harus diikuti. Kemudian baru dapat mendefinisikan type

dan aspectdari model.

<type name="tawf:data">

<parent>bpm:workflowTask</parent> <properties>

<property name="tawf:nama_mhs"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:nim"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:judul_proposal"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:konsentrasi"> <type>d:text</type> <constraints> <constraint ref="tawf:peminatan"/> </constraints> </property>

<property name="tawf:nama_dosen1"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:nip1"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:coment1"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:nama_dosen2"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:nip2"> <type>d:text</type>

<multiple>false</multiple> </property>

<property name="tawf:coment2"> <type>d:text</type>

</property> </properties> <overrides> <property name="bpm:packageItemActionGroup"> <default>edit_package_item_actions</default > </property> overrides> </type>

Workflow task model terdiri dari dua class model yaitu tag <type> dan <aspect>. Sedangkan tag <parent> mereprentasikan relasi generalisasi. Tag <property>

dimodelkan sebagai atribut dari class. Sedangkan tag

<association> menunjukan adanya asosiasi yang mengarahkan tag <source> ke tag <target>. Tag

<mandatory-aspects> dimodelkan dengan adanya

aggregasi pada setiap tag <aspect>. File

taWorkflowModelxml dapat dilihat pada lampiran listing program.

c. Membuat Workflow Process Definition

Dengan menggunaka Eclipse yang telah terinstal plugin process designer, dapat dibuat sebuah process definition baru dengan folder lokasi file adalah config| alfresco| extension| workflow|. Setelah proses baru telah dibuat, terdapat file

processdefinition.xml pada folder yang merupakan nama dari proses yang telah dibuat. Pada file processdefinition ini dilakukan penulisan kode dengan menggunakan JPDL.

Untuk membuat processdefinition pertama dilakukan pendefinisian dari proses.

<?xml version="1.0" encoding="UTF-8"?> <process-definition

xmlns="urn:jbpm.org:jpdl-3.1" name="tawf:wfproposal">

Kemudian mendaftarkan aktor-aktor yang akan terlibat untuk mengerjakan tugas dalam workflow.

<swimlane name="staff"> <assignment class="org.alfresco.repo.workflow.jbpm.Alfresc oAssignment"> <actor>#{people.getPerson('staffprodi')}</acto r> </assignment> </swimlane>

Setelah semua aktor telah didefinisikan, selanjutnya membuat tahapan tugas-tugas pada workflow.

<start-state name="start">

<task name="tawf:submitDocument"

swimlane="initiator"></task> <transition name=""

to="submit"></transition> </start-state>

Untuk menghindari keterlambatan pengerjaan, terdapat pula timeryang digunakan pada workflow.

<timer name="DosenTimer" duedate="1 minutes" transition="approve">

<action class="org.alfresco.repo.workflow.jbpm.Alfresc oJavaScript"> <script> logger.log("dosen review timer expired...approving... "); </script> </action> </timer>

Selain timer, untuk mendukung penyampaian informasi, terdapat pengiriman email kepada aktor workflow.

<action class="org.alfresco.repo.workflow.jbpm.Alfresc oJavaScript"> <runas>admin</runas> script> <variable

name="tawf_nama_mhs" access="read" /> <variable

name="tawf_judul_proposal" access="read" /> <variable name="initiator"

access="read" />

<variable name="sek_prodi"

access="read" />

<variable

name="bpm_package" access="read" /> <expression>

var mail = actions.create("mail");

mail.parameters.to =

initiator.properties.email;

mail.parameters.subject = "Request to review"; mail.parameters.from =

sek_prodi.properties.email;

mail.parameters.text = "Assalamu'alakum. \n Diberitahukan kepada '"+tawf_nama_mhs+"' bahwa proposal skripsi anda dengan judul

'"+tawf_judul_proposal+"' tidak dapat

digunakan sebagai topik penelitian dan harus diganti dengan topik yang lain. \n Terima kasih."; mail.execute(bpm_package); logger.log("\nreject, " + tawf_nama_mhs + "!!!"); </expression> </script> </action>

Pada akhir dari tahapan workflow, jika disetujui oleh ketua program studi, dibuat sebuah file berisi data proposal skripsi dan pembimbing yang digunakan untuk pembuatan surat keterangan pembimbingan oleh staff fakultas, serta dibuat duplikat dari proposal yang diajukan.

<action class="org.alfresco.repo.workflow.jbpm.Alfresc oJavaScript"> <runas>admin</runas> <script> <variable

name="tawf_nama_mhs" access="read" />

<variable name="tawf_nim"

access="read" />

<variable

name="tawf_judul_proposal" access="read" /> <variable

name="tawf_konsentrasi" access="read" /> <variable

name="tawf_nama_dosen1" access="read" /> <variable name="tawf_nip1"

access="read" />

<variable

name="tawf_nama_dosen2" access="read" /> <variable name="tawf_nip2"

access="read" />

<variable name="msg"

access="read,write" />

<variable name="initiator"

access="read" />

<variable

name="bpm_package" access="read" /> <variable

name="tawf_d1Assignee" access="read" /> <variable

name="tawf_d2Assignee" access="read" /> <variable name="target"

access="read"/>

<variable name="appfolder"

access="read"/>

<variable name="appDate"

access="read"/>

<expression>

var msg = "Assalamu'alakum.\n Data surat keputusan pembimbingan skripsi dari proposal :\n Nama : "+tawf_nama_mhs+"\n NIM : "+tawf_nim+"\n Program Studi : Teknik Informatika\n

Konsentrasi : "+tawf_konsentrasi+"\n Judul Skripsi : "+tawf_judul_proposal+"\n\n Pembimbing\n I : "+tawf_nama_dosen1+"

("+tawf_nip1+")\n II : "+tawf_nama_dosen2+" ("+tawf_nip2+")\n Tanggal Pengesahan :

"+utils.pad(appDate.getDate(),2)+"/"+utils.pad ((appDate.getMonth()+1),2)+"/"+utils.pad((appD ate.getYear()-100),2)+"\n Terima Kasih.\n\n Mengetahui,\n Ketua Prodi Teknik Informatika";

var workflowFile = target.createFile(""+utils.pad((appDate.getYea r()-100),2)+"- "+utils.pad((appDate.getMonth()+1),2)+"- "+utils.pad(appDate.getDate(),2)+"- "+appDate.getHours()+"- "+appDate.getMinutes()+"-"+appDate.getSeconds()+" SK "+tawf_nama_mhs+" "+tawf_nim+".txt"); workflowFile.content=msg; workflowFile.mimetype="text/plain"; workflowFile.save(); bpm_package.children[0].copy(appfolder); </expression> </script> </action>

Untuk selengkapnya file processdefinition.xml dapat dilihat pada lampiran listing program.

d. Membuat Workflow Resource Bundle

Workflow resource bundle merupakan file

taWorkflow.propertiesyang dibuat pada folder config| alfresco| extension|, file ini berisi pesan yang akan ditampilkan pada web client sebagai pengganti nama task dari task model dan nama

transition dari process definition. Pesan untuk task model

ditulis dengan format <namespace> _ <nama task model> .

type. <namespace> _ <nama task> . title/ desciption.

tawf_taworkflowmodel.type.tawf_revise.title=Re visi Proposal

tawf_taworkflowmodel.type.tawf_revise.descript ion=Revisi proposal oleh Mahasiswa

Sememtara untuk penulisan transition dari process definition mempunyai format <namespace> _ <nama processdefinition> .

<node> . <nama node> . transition. <nama transition> . title /

description.

tawf_wfproposal.node.revisi.transition.resubmi t.title=Revisi

tawf_wfproposal.node.revisi.transition.resubmi t.description=Resubmit After Revision

tawf_wfproposal.node.revisi.transition.done.ti tle=Membatalkan

tawf_wfproposal.node.revisi.transition.done.de scription=Stop Approvement Proposal Skripsi

Untuk selengkapnya file taWorkflow.propertiesdapat dilihat pada lampiran listing program.

e. Konfigurasi Web Client

Konfigurasi web client dilakukan untuk mendaftarkan tampilan workflow pada web Alfresco. File konfigurasi web-client-config-custom.xml berada pada folder config| alfresco| extension|.

<alfresco-config>

<config evaluator="node-type"

condition="tawf:submitDocument"

replace="true">

<property-sheet> <show-property

name="tawf:nama_mhs" display-label="Nama Mahasiswa"/>

<show-property name="tawf:nim"

display-label="NIM"/>

<show-property

name="tawf:judul_proposal" display-label="Judul Sementara"/>

<show-property name="tawf:konsentrasi" display-label="Konsentrasi"/>

<separator name="sepCust1"

display-label="Dosen Pembimbing 1" component-generator="HeaderSeparatorGenerator" />

<show-property

name="tawf:nama_dosen1" display-label="Nama Dosen" read-only="true"/>

<show-property name="tawf:nip1"

display-label="NIP" read-only="true"/> <show-property

name="tawf:coment1"

component-generator="TextAreaGenerator" display-label="Komentar" read-only="true"/>

<separator name="sepCust2"

display-label="Dosen Pembimbing 2" component-generator="HeaderSeparatorGenerator" />

<show-property

name="tawf:nama_dosen2" display-label="Nama Dosen" read-only="true"/>

<show-property name="tawf:nip2"

display-label="NIP" read-only="true"/> <show-property

name="tawf:coment2"

component-generator="TextAreaGenerator" display-label="Komentar" read-only="true"/>

<separator name="sepCust3"

display-label-id="general" component-generator="HeaderSeparatorGenerator" />

<show-property name="bpm:comment"

component-generator="TextAreaGenerator" display-label="Komentar"/>

</property-sheet> </config>

<config evaluator="node-type"

condition="tawf:selection" replace="true"> <property-sheet>

<separator name="sep1" display-label-id="general"

component-generator="HeaderSeparatorGenerator" /> <show-association

name="tawf:d1Assignee" display-label-id="wf_reviewers" />

<show-association name="tawf:d2Assignee" display-label-id="wf_reviewers" />

<show-property name="bpm:comment"

component-generator="TextAreaGenerator" display-label="Komentar"/>

</property-sheet> </config>

</alfresco-config>

Untuk selengkapnya file web-client-config-custom.xml dapat dilihat pada lampiran listing program.

f. Konfigurasi Spring Framework

Konfigurasi untuk Spring framework yang digunakan untuk mengintegrasikan model proyek ekstensi dengan membuat file skripsi-model-context.xml pada folder config| alfresco| extension|.

<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN'

'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

<bean id="skripsi.workflowBootstrap"

parent="workflowDeployer"> <property name="workflowDefinitions"> <list> <props> <prop key="engineId">jbpm</prop>

<prop

key="location">alfresco/extension/workflows/pr oposal-wf/processdefinition.xml</prop>

<prop key="mimetype">text/xml</prop>

<prop key="redeploy">true</prop>

</props> </list>

</property>

<property name="models"> <list>

<value>alfresco/extension/model/taWorkflowMode l.xml</value>

</list> </property>

<property name="labels"> <list>

<value>alfresco.extension.taWorkflow</value> </list>

</property> </bean>

Kode diatas berguna untuk mendaftarkan file dan

package dari project yang dibuat. Pendaftaran dilakukan dengan menentukan lokasi dari file processdefinition,

workflowmodel, dan properties yang telah dibuat. Untuk selengkapnya file skripsi-model-context.xml dapat dilihat pada lampiran listing program.

g. Melakukan DeploymentTerhadapProcess Definition

Untuk proses deployment processdefinition dapat dilakukan langsung menggunakan process designer dengan mengkonfigurasi server deploymentsebagai berikut :

Server name : localhost Server port : 8080

Server deployer : /alfresco/jbpm/deployprocess

Kemudian untuk melakukan pengujian koneksi dapat dilakukan melalui tombol Test Connection. Jika pengujian berhasil deployment dapat dilakukan menggunakan tombol

Deploy Process Archive.

Dokumen terkait