การพัฒนาระบบ e-services ...
DESCRIPTION
โดย สถาบันวิจัยและให้คำปรึกษาแห่งมหาวิทยาลัยธรรมศาสตร์. การพัฒนาระบบ e-Services ภายใต้สถาปัตยกรรม SOA วันที่ ๒. รายงานกระบวนการ. ตรวจสอบสถานะ. Control. If. Goto. ROLES. อำนาจดำเนินการ. เจ้าหน้าที่รับเรื่อง. เจ้าหน้าที่กลุ่มงานบุคลากร. enter. approve. issue card. - PowerPoint PPT PresentationTRANSCRIPT
โดย สถาบันวิ�จัยและให้�คำ�าปรึ�กษาแห้�งมห้าวิ�ทยาลยธรึรึมศาสตรึ"
การึพัฒนารึะบับั e-
Services ภายใต�สถาป&ตยกรึรึม SOAวินท'( ๒
รึายงานกรึะบัวินการึ
ตรึวิจัสอบัสถานะ
CONTROL
If
Goto
ROLES
อ�านาจัด�าเน�นการึ
enter approve
issue card
เจ้�าหน้�าที่�รั �บเรั อง เจ้�าหน้�าที่�กลุ่��มงาน้บ�คลุ่ากรั
enter approve
issue card
เจ้�าหน้�าที่�รั �บเรั องเจ้�าหน้�าที่�กลุ่��มงาน้บ�คลุ่ากรั
register new user
WEB SERVICES
http://twitter.com/statuses/
user_timeline.xml?screen_name=paipibat
web services
Proxy
views/lab/web_services/
show.rhtml
Lab: Plant Data
http://gdi09.googlecode.com/svn/trunk/plant_data_xml1.xml
http://code.google.com/apis/chart/types.html
Lab: Web Services
show.rhtml (1)
<% doc = REXML::Document.new(@xvars[:get_data]) %>
show.rhtml (2)<table width="100%"> <tr> <td colspan="6" align="right">ห้น�วิย (ล�านบัาท)</td> </tr> <tr> <th>ป,</th> <th>ปรึะเภท</th> <th>ข้�าวิ</th> <th>ยางพัารึา</th> <th>มนส�าปะห้ลง</th> <th>ปาล"ม</th> </tr>
show.rhtml (3)
<% doc.elements.each("//plant_data") do |d| %>
<% year = d.elements["year"] %> <% coop_type =
d.elements["coop_type_name"] %> <% a1 = d.elements["SumOfamount1"] %> <% a2 = d.elements["SumOfamount2"] %> <% a3 = d.elements["SumOfamount3"] %> <% a4 = d.elements["SumOfamount4"] %>
show.rhtml (4)
<tr> <td><%= year.text %></td> <td><%= coop_type.text %></td> <td align="right"><%= number_to_currency
a1.text.to_i/1e6, :unit=>'', :precision=>0 %></td> <td align="right"><%= number_to_currency
a2.text.to_i/1e6, :unit=>'', :precision=>0 %></td> <td align="right"><%= number_to_currency
a3.text.to_i/1e6, :unit=>'', :precision=>0 %></td> <td align="right"><%= number_to_currency
a4.text.to_i/1e6, :unit=>'', :precision=>0 %></td> </tr> <% end %></table>
show.rhtml (5)<h4>สห้กรึณ์"การึเกษตรึ</h4><% data="t:" %><% s= 3e8 %><% doc.elements.each("//plant_data") do |d| %> <% year = d.elements["year"] %> <% coop_type = d.elements["coop_type_name"] %> <% next if coop_type.text != "สห้กรึณ์"การึเกษตรึ " %> <% data << (d.elements["SumOfamount1"].text.to_i/s).to_s+","
%> <% data << (d.elements["SumOfamount2"].text.to_i/s).to_s+","
%> <% data << (d.elements["SumOfamount3"].text.to_i/s).to_s+","
%> <% data << (d.elements["SumOfamount4"].text.to_i/s).to_s+"|"
%><% end %>
show.rhtml (6)
<% data.chomp!("|") %><%
url="http://chart.apis.google.com/chart?cht=bvg&chbh=a&chs=400x150&chco=4d89f9,c6d9fd" %>
<img src="<%= url+'&chd='+data %>"/>
show.rhtml (7)<h4>สห้กรึณ์"น�คำม</h4><% data="t:" %><% s= 2e7 %><% doc.elements.each("//plant_data") do |d| %> <% year = d.elements["year"] %> <% coop_type = d.elements["coop_type_name"] %> <% next if coop_type.text != "สห้กรึณ์"น�คำม " %> <% data << (d.elements["SumOfamount1"].text.to_i/s).to_s+","
%> <% data << (d.elements["SumOfamount2"].text.to_i/s).to_s+","
%> <% data << (d.elements["SumOfamount3"].text.to_i/s).to_s+","
%> <% data << (d.elements["SumOfamount4"].text.to_i/s).to_s+"|"
%><% end %>
show.rhtml (8)
<% data.chomp!("|") %><%
url="http://chart.apis.google.com/chart?cht=bvg&chbh=a&chs=400x150&chco=31D829,8EE889" %>
<img src="<%= url+'&chd='+data %>"/>
CASE STUDIES
แจั�งเวิ/บัไซท"ไม�เห้มาะสม
ปรัะชาชน้ MICT
enter
ack
process
inform ISP
shutdown
แจั�งเวิ/บัไซท"ไม�เห้มาะสม
bad_web model
bad_web services
enter.rhtml
<table> <tr><td>URL:</td><td><%= text_field_tag :url
%></td></tr> <tr><td>รึายละเอ'ยด:</td><td><%=
text_area_tag :description %></td></tr> <tr><td>ผู้3�แจั�ง:</td><td><%=
text_field_tag :reporter %></td></tr> <tr><td>email:</td><td><%=
text_field_tag :email %></td></tr> <tr><td>โทรึศพัท":</td><td><%=
text_field_tag :phone %></td></tr></table>
acknowledge.rhtml<pre>เรึ4(อง แจั�งเวิ/บัไซท"ไม�เห้มาะสมเรึ'ยน คำ5ณ์ <%= @xvars[:enter][:reporter] %>
กรึะทรึวิงเทคำโนโลย'สารึสนเทศและการึส4(อสารึ ข้อข้อบัคำ5ณ์ท'(ท�านได�ช่�วิยแจั�งเบัาะแส
เวิ/บัไซท" <%= @xvars[:enter][:url] %>ซ�งม'คำวิามไม�เห้มาะสมเน4(องจัาก <%= @xvars[:enter]
[:description] %>เจั�าห้น�าท'(จัะท�าการึตรึวิจัสอบั และด�าเน�นการึต�อไป</pre>
bad_web_controller.rbclass BadWebController < ApplicationController def create_data get_xvars BadWeb.create :url=>@xvars[:enter][:url], :description=>@xvars[:enter][:description], :reporter=>@xvars[:enter][:reporter], :email=>@xvars[:enter][:email], :phone=>@xvars[:enter][:phone], :status=>0 endend
process.rhtml (1)<pre>เรึ4(อง แจั�งเวิ/บัไซท"ไม�เห้มาะสมเรึ'ยน ผู้3�อ�านวิยการึส�านกก�ากบัการึใช่�เทคำโนโลย'สารึสนเทศ
ด�วิยเวิ/บัไซท" <a href="<%= @xvars[:enter][:url] %>" target="_blank"><%= @xvars[:enter][:url] %></a>
ม'ข้�อคำวิามไม�เห้มาะสมเน4(องจัาก <%= @xvars[:enter][:description] %>
จั�งข้อแจั�งเพั4(อให้�ทางส�านกท�าการึตรึวิจัสอบัและด�าเน�นการึต�อไป
process.rhtml (2)รึายละเอ'ยดผู้3�แจั�งช่4(อ : <%= @xvars[:enter][:description] %>email: <%= @xvars[:enter][:email] %>โทรึศพัท" : <%= @xvars[:enter][:phone] %>
</pre><%= radio_button_tag "shutdown", "y" %>
แจั�งป7ดเวิ/บัไซท" <%= radio_button_tag "shutdown", "n" %>
ตรึวิจัสอบัแล�วิไม�ม'ป&ญห้า
inform_isp.rhtml
<img src="http://tgel.googlecode.com/files/logo_mict.png"/>
<pre><h3>เรึ4(อง แจั�งเวิ/บัไซท"ไม�เห้มาะสม<br/>เรึ'ยน ท�านผู้3�ให้�บัรึ�การึอ�นเตอรึ"เน/ต</h3>ด�วิยเวิ/บัไซท" <%= @xvars[:enter][:url] %> ม'การึเผู้ยแพัรึ�ข้�อคำวิาม
ห้รึ4อการึกรึะท�าอนผู้�ดกฏห้มาย จั�งข้อแจั�งเพั4(อให้�ท�านท�าการึป7ดก:นการึเข้�าถ�งเวิ/บัไซต"ดงกล�าวิต�อผู้3�ใช่�บัรึ�การึข้องท�าน
ข้อแสดงคำวิามนบัถ4อกรึะทรึวิงเทคำโนโลโลย'สารึสนเทศและการึส4(อสารึ
<%= date_thai Time.now, :date_only=>true, :monthfull=>true %>
</pre>
finish.rhtml
<% bad_web= BadWeb.find_by_url @xvars[:enter][:url] %>
<h3>สรึ5ปการึด�าเน�นการึพั�จัารึณ์าเวิ/บัไซต" <%= bad_web.url %></h3>
<% if @xvars[:process][:shutdown]=='y' %> ได�ท�าการึตรึวิจัสอบัแล�วิ ม'คำวิามผู้�ดจัรึ�ง จั�งได�แจั�งผู้3�ให้�บัรึ�การึ
อ�นเตอรึ"เน/ตรึะงบัการึเช่4(อมต�อแล�วิ <% bad_web.update_attribute :status,1 %><% else %> ได�ท�าการึตรึวิจัสอบัแล�วิ ไม�ม'คำวิามผู้�ด <% bad_web.update_attribute :status,2 %><% end %>
report/show.rhtml (1)
<% num_bad_web_new= BadWeb.count :conditions=>"status = 0" %>
<% num_bad_web_shut= BadWeb.count :conditions=>"status = 1" %>
<% num_bad_web_ok= BadWeb.count :conditions=>"status = 2" %>
<h3>รึายงานสรึ5ปการึแจั�งเวิ/บัไซต"ไม�เห้มาะสม</h3><table style="margin-left:3em;"> <tr> <td>อย3�รึะห้วิ�างด�าเน�นการึ</td> <td align="right"><%= num_bad_web_new
%></td> </tr>
report/show.rhtml (2)
<tr> <td>แจั�งป7ดแล�วิ</td> <td align="right"><%= num_bad_web_shut
%></td> </tr> <tr> <td>ตรึวิจัสอบัแล�วิไม�พับัคำวิามผู้�ด</td> <td align="right"><%= num_bad_web_ok
%></td> </tr></table>
ท5นด3งาน / ท5นการึศ�กษา
New - ขึ้��น้ที่ะเบ�ยน้ที่�น้ต่�างๆApply - ผู้ �ม�สิ"ที่ธิ"ที่�สิน้ใจ้สิม�ครัขึ้อเขึ้�ารั�บที่�น้Select - ค�ดเลุ่ อกผู้ �ได�รั�บที่�น้
ท5นด3งาน / ท5นการึศ�กษา - New
เจ้�าหน้�าที่�ฝ่(ายบ�คคลุ่ากรั
enter
ack
ท5นด3งาน / ท5นการึศ�กษา - Apply
ขึ้�ารัาชการัที่�สิน้ใจ้ ผู้ �บ�งค�บบ�ญชา
สิม�ครั อน้�ม�ต่"
ท5นด3งาน / ท5นการึศ�กษา - Select
เจ้�าหน้�าที่�ฝ่(ายบ�คคลุ่ากรั / กรัรัมการั ขึ้�ารัาชการัที่�สิน้ใจ้
เลุ่ อกที่�น้
เลุ่ อกผู้ �ได�รั�บที่�น้
แจ้�งผู้ �ได�รั�บที่�น้
ท5นด3งาน / ท5นการึศ�กษา
grant models
grant services
grant/new
new/enter.rhtml (1)
<table> <tr><td>ผู้3�ให้�ท5น:</td><td><%=
text_field_tag :sponser %></td></tr> <tr><td>ช่4(อ:</td><td><%=
text_field_tag :name %></td></tr> <tr><td>รึายละเอ'ยด:</td><td><%=
text_area_tag :description %></td></tr> <tr><td>ก�าห้นดป7ดรึบัสมคำรึ:</td><td><%=
date_select_thai :grant, :deadline %></td></tr>
<tr><td>วินเรึ�(มต�น:</td><td><%= date_select_thai :grant, :start %></td></tr>
new/enter.rhtml (2)
<tr><td>วินส�:นส5ด:</td><td><%= date_select_thai :grant, :end %></td></tr>
<tr><td>คำ5ณ์สมบัต�ข้องผู้3�สมคำรึ:</td><td><%= text_area_tag :qualification %></td></tr>
<tr><td>จั�านวินท5น:</td><td><%= text_field_tag :quantity %></td></tr>
</table>
grant_controller.rb
class GrantController < ApplicationController def create_data get_xvars grant= Grant.create :sponser=>@xvars[:enter][:sponser], :name=>@xvars[:enter][:name], :description=>@xvars[:enter][:description], :deadline=>cdate(@xvars[:enter][:grant],:deadline), :start=>cdate(@xvars[:enter][:grant],:start), :end=>cdate(@xvars[:enter][:grant],:end), :qualification=>@xvars[:enter][:qualification], :quantity=>@xvars[:enter][:quantity] @xvars[:grant_id]= grant.id save_xvars endend
new/ack.rhtml (1)<h3>บันท�กข้�อม3ลท5นเรึ'ยบัรึ�อยแล�วิ</h3><% grant= Grant.find @xvars[:grant_id] %><table> <tr><td>ผู้3�ให้�ท5น:</td><td><%= grant.sponser
%></td></tr> <tr><td>ช่4(อ:</td><td><%= grant.name
%></td></tr> <tr><td>รึายละเอ'ยด:</td><td><%= grant.description
%></td></tr> <tr><td>ก�าห้นดป7ดรึบัสมคำรึ:</td><td><%= date_thai
grant.deadline, :date_only=>true %></td></tr> <tr><td>วินเรึ�(มต�น:</td><td><%= date_thai
grant.start, :date_only=>true %></td></tr>
new/ack.rhtml (2)
<tr><td>วินส�:นส5ด:</td><td><%= date_thai grant.end, :date_only=>true %></td></tr>
<tr><td>คำ5ณ์สมบัต�ข้องผู้3�สมคำรึ:</td><td><%= grant.qualification %></td></tr>
<tr><td>จั�านวินท5น:</td><td><%= grant.quantity %></td></tr>
</table>
grant/apply
apply/select_grant.rhtml (1)<% grants = Grant.all :conditions=>['deadline > ?',
Time.now] %><table> <tr> <th> </th> <th>ท5น</th> <th>รึายละเอ'ยด</th> <th>ห้มดเข้ตรึบัสมคำรึ</th> <th>เรึ�(มต�น</th> <th>ส�:นส5ด</th> <th>จั�านวิน</th> </tr>
<% grants.each do |g| %> <tr> <td><%= radio_button_tag "grant", g.id %></td> <td><%= g.name %></td> <td><%= g.description %></td> <td><%= date_thai g.deadline,:date_only=>true
%></td> <td><%= date_thai g.start,:date_only=>true %></td> <td><%= date_thai g.end,:date_only=>true %></td> <td align="right"><%= g.quantity %></td> </tr> <% end %></table>
apply/select_grant.rhtml (2)
apply/enter.rhtml<table> <tr><td>ช่4(อ:</td><td><%=
text_field_tag :fname %></td></tr> <tr><td>นามสก5ล:</td><td><%=
text_field_tag :lname %></td></tr> <tr><td>โทรึศพัท":</td><td><%=
text_field_tag :phone %></td></tr></table>
apply/approve.rhtml (1)<% grant= Grant.find @xvars[:select_grant]
[:grant].to_i %><pre>เรึ4(อง ข้ออน5มต�สมคำรึเข้�ารึบัท5น <%= grant.name %>เรึ'ยน ผู้3�บังคำบับัญช่า ด�วิยข้�าพัเจั�า <%= @xvars[:enter][:fname] %> <%=
@xvars[:enter][:lname] %> ได�พั�จัารึณ์าเห้/นวิ�าท5น <%=grant.name %> ซ�(งม'ก�าห้นดการึศ�กษา/ด3งาน รึะห้วิ�างวินท'( <%= date_thai grant.start,:date_only=>true %> - <%= date_thai grant.end,:date_only=>true %> เป;นปรึะโยช่น"ต�อห้น�วิยงาน จั�งข้ออน5มต�เข้�าสมคำรึข้อรึบัท5นดงกล�าวิ
จั�งเรึ'ยนมาเพั4(อโปรึดพั�จัารึณ์า
apply/approve.rhtml (2)
ข้อแสดงคำวิามนบัถ4อ
<%= @xvars[:enter][:fname] %> <%= @xvars[:enter][:lname] %>
</pre><%= radio_button_tag "result", "y" %> อน5มต�
<%= radio_button_tag "result", "n" %> ไม�อน5มต�
grant_controller.rbclass GrantController <
ApplicationController def self.supervisor(login) true end …end
grant_controller.rbclass GrantController < ApplicationController def create_applicant get_xvars applicant=
Applicant.create :fname=>@xvars[:enter][:fname],
:lname=>@xvars[:enter][:lname], :phone=>@xvars[:enter][:phone], :grant_id=>@xvars[:select_grant][:grant].to_i, :status=>0 endend
apply/finish.rhtml
<% grant= Grant.find @xvars[:select_grant][:grant].to_i %><pre>เรึ4(อง ข้ออน5มต�สมคำรึเข้�ารึบัท5น <%= grant.name %>เรึ'ยน <%= @xvars[:enter][:fname] %> <%= @xvars[:enter]
[:lname] %> ตามท'(ท�านได�ข้อสมคำรึเข้�ารึบัท5น <%= grant.name %> ทางผู้3�บังคำบับัญช่า
ได�พั�จัารึณ์ารึายละเอ'ยดแล�วิ <% if @xvars[:approve][:result]=='y' %>
และได�ท�าการึอน5มต�ให้�ส�งช่4(อข้องท�านไปยงฝ่=ายบั5คำคำลเพั4(อพั�จัารึณ์าแล�วิ <% else %>
พับัวิ�าในสภาวิะป&จัจั5บันยงไม�สามารึถอน5มต�ได� <% end %>
จั�งเรึ'ยนมาเพั4(อโปรึดทรึาบัข้อแสดงคำวิามนบัถ4อ</pre>
grant/select
select/select_grant.rhtml (1)<% grants = Grant.all :conditions=>['deadline > ?',
Time.now] %><table> <tr> <th> </th> <th>ท5น</th> <th>รึายละเอ'ยด</th> <th>ห้มดเข้ตรึบัสมคำรึ</th> <th>จั�านวินผู้3�สมคำรึ</th> <th>จั�านวินท5น</th> <th>จั�านวินผู้3�ได�รึบัท5นแล�วิ</th> </tr>
select/select_grant.rhtml (2)
<% grants.each do |g| %> <tr> <td><%= radio_button_tag "grant", g.id %></td> <td><%= g.name %></td> <td><%= g.description %></td> <td><%= date_thai g.deadline,:date_only=>true %></td> <td align="right"><%= g.applicants.count %></td> <td align="right"><%= g.quantity %></td> <td align="right"><%= g.applicants.count :conditions=>"status=1"
%></td> </tr> <% end %></table>
models/grant.rbclass Grant < ActiveRecord::Base has_many :applicantsend
select/select_candidate.rhtml
(1)<% grant= Grant.find @xvars[:select_grant][:grant].to_i %>
<h3>คำดเล4อกผู้3�สมคำรึท5น<%=grant.name%> จั�านวิน <%= grant.quantity %> ท5น</h3>
<table> <tr> <th> </th> <th>ช่4(อ</th> <th>นามสก5ล</th> <th>โทรึศพัท"</th> </tr>
select/select_candidate.rhtml
(2) <% grant.applicants.each do |a| %> <tr> <td><%= check_box_tag
"applicants[]",a.id %></td> <td><%= a.fname %></td> <td><%= a.lname %></td> <td><%= a.phone %></td> </tr> <% end %></table>
grant_controller.rbclass GrantController < ApplicationController def update_applicants get_xvars @xvars[:select_candidate]
[:applicants].each do |a| applicant= Applicant.find a.to_i applicant.update_attribute :status,1 end endend
select/inform_candidates.rhtm
l (1)<% grant= Grant.find @xvars[:select_grant][:grant].to_i %>
<pre>เรึ4(อง ข้อส�งข้�ารึาช่การึเข้�ารึบัท5น <%= grant.name
%>เรึ'ยน ห้วิห้น�ากล5�มงานพัฒนาทรึพัยากรึบั5คำคำล ด�วิย <%= grant.sponser %> ได�จัดให้�ม'การึคำด
เล4อกข้�ารึาช่การึผู้3�เก'(ยวิข้�องให้�เข้�ารึบัท5น <%=grant.name %> โดยคำณ์ะกรึรึมการึข้องกรึะทรึวิงฯ ได�ท�าการึคำดเล4อกผู้3�สมคำรึแล�วิ ม'รึายช่4(อดงต�อไปน':
select/inform_candidates.rhtm
l (2) <% @xvars[:select_candidate]
[:applicants].each_with_index do |a,i| -%> <% applicant= Applicant.find a.to_i -%> <%= i+1 %>. <%= applicant.fname %> <
%= applicant.lname %><% end -%>จั�งเรึ'ยนมาเพั4(อโปรึดด�าเน�นการึ
ข้อแสดงคำวิามนบัถ4อ</pre>