Wednesday, November 19, 2014

วิธีการเปลี่ยนแปลงค่า Atomic value ของ Element ในตัวแปร Body




ในตัวอย่างจะส่งค่า Inbound มาเป็น <a>111</a> และต้องการเปลี่ยนแปลงค่า 111 เป็นค่าของ Process ID ซึ่งได้จากการ Generate เองหรือได้จากการประยุกค์ใช้กับ Service Callout เพื่อให้ Service อื่น Generate ให้ได้เช่นกัน


Message Flow



































Assign Process ID stage:

Assign =>
<ins:processId xmlns:ins="http://test_processid/ins">
<ins1:returnCode xmlns:ins1="http://test_processid/ins1">0000020141119144</ins1:returnCode>
</ins:processId>



to variable => processid

*** สามารถเป็น Response Document Variable ของ Service Callout ได้

Replace Body variable:

Replace => //proc1:a
In XPath Expression Editor, add User Defined Namespaces
Prefix
URI
proc1 http://test_processid/proc1

in variable => body

with => <proc1:a>{$processid//ins1:returnCode/text()}</proc1:a>
In XPath Expression Editor, add User Defined Namespaces
Prefix
URI
proc1 http://test_processid/proc1
ins1 http://test_processid/ins1

and Replace entire node



Testing

Request document =
<proc1:pos xmlns:proc1="http://test_processid/proc1">
<proc1:a>111</proc1:a>
<proc1:b>222</proc1:b>
<proc1:c>333</proc1:c>
</proc1:pos>

Response document =
<proc1:pos xmlns:proc1="http://test_processid/proc1">
<proc1:a>0000020141119144</proc1:a>
<proc1:b>222</proc1:b>
<proc1:c>333</proc1:c>

</proc1:pos>

Tuesday, June 3, 2014

SQL Server Users and Role Assignments


การสร้าง usesr proxyCMAH ด้วย Management Studio
สร้าง role ใน Master database

Role
Permission
CMAH_SYS
EXECUTE ON [sys].[sp_OADestroy]
EXECUTE ON [sys].[sp_OACreate]
EXECUTE ON [sys].[sp_OAMethod]
EXECUTE ON [sys].[sp_OASetProperty]



สร้าง role ใน CMAH database

Role
Permission
CMAH_APP
Default

เพิ่ม user proxyCMAH เข้า role CMAH_APP
db_owner
Add CMAH_APP role to this role




ตรวจสอบ Server Roles



ทำ User Mapping  และตรวจสอบ Database role



การสร้าง user ด้วย SQL script
หากต้องการเปลี่ยนชื่อให้แทนที่ proxyCMAH_RPT ด้วยชื่อที่ต้องการ

  1. สร้าง User login หากยังไม่มี
USE [master]
GO
CREATE LOGIN [proxyCMAH_RPT] WITH PASSWORD=N'P@ssw0rd', DEFAULT_DATABASE=[CMAH], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
GO
  1. สร้าง Role ใหม่และ Grant Privilege เข้า Role ใน Master database เพื่อใช้งาน System Stored Procesure
USE [master]
GO
CREATE ROLE [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OACreate] TO [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OADestroy] TO [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OAGetErrorInfo] TO [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OAGetProperty] TO [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OAMethod] TO [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OASetProperty] TO [CMAH_RPT]
GO
use [master]
GO
GRANT EXECUTE ON [sys].[sp_OAStop] TO [CMAH_RPT]
GO
  1. สร้าง User ใน Master Database และ Assign role ที่สร้างไว้
USE [master]
GO
CREATE USER [proxyCMAH_RPT] FOR LOGIN [proxyCMAH_RPT] WITH DEFAULT_SCHEMA=[dbo]
GO
USE [master]
GO
EXEC sp_addrolemember N'CMAH_RPT', N'proxyCMAH_RPT'
GO
  1. สร้าง User ใน MSDB database และ Assign role วำหรับจัดการ Job ได้
USE [msdb]
GO
CREATE USER [proxyCMAH_RPT] FOR LOGIN [proxyCMAH_RPT] WITH DEFAULT_SCHEMA=[dbo]
GO
USE [msdb]
GO
EXEC sp_addrolemember N'SQLAgentOperatorRole', N'proxyCMAH_RPT'
GO
  1. สร้าง Role ใหม่
USE [CMAH]
GO
CREATE ROLE [CMAH_RPT]
GO
  1. Grant role ที่สร้างขึ้นใหม่เข้าใน role db_owner
USE [CMAH]
GO
EXEC sp_addrolemember N'db_owner', N'CMAH_RPT'
GO
  1. สร้าง User ใน CMAH database และ Assign role ใหม่ที่สร้าง
USE [CMAH]
GO
CREATE USER [proxyCMAH_RPT] FOR LOGIN [proxyCMAH_RPT] WITH DEFAULT_SCHEMA=[dbo]
GO
USE [CMAH]
GO
EXEC sp_addrolemember N'CMAH_RPT', N'proxyCMAH_RPT'
GO