Wednesday, July 3, 2013

Tuesday, May 7, 2013

Product Item Master Upload 프로그램 설치 가이드

    1. Create ProductItemManagement inbound Service
    AX2012 > System administrator > Setup > Services and Application Integration Framework > Inbound ports 의 New 버튼을 통해서 ProductItemManagement inbound Service 생성
    clip_image001
    Port name : ProductItemManagement
    Description : Product Item Management
    Service operations :
    clip_image002
    • EcoRes*
    • InventInventItemLocation*
    • InventItemBarcodeService*
    • InventItemService*
    1. Activate Button을 통해서 ProductItemManagement inbound Service 실행
    *** Item Upload 프로그램에서 사용하기 위해 WSDL URI 에 들어가 있는 URI 정보를 notepad등에 복사해 둠
    1. Import Custom inbound Service from XPO file
      • AX2012 Client에서 Ctrl + D 를 눌러 New Development Workspace를 실행
      • New Development Workspace의 Mainmenu > Command > Import를 실행시켜 PrivateProject_TKRProductItemUploadProject.xpo 를 Import
      • 아래와 같이 AOT(Application Object Tree)가 화면에 보이지 않는다면 Ctrl + D를 눌러 AOT 실행
    clip_image003
    AOT > Service Groups > SGCusAddDetailInfo 선택 한 후 오른쪽 마우스 버튼을 눌러 Deploy Service Group 실행
    • AX2012 > System administrator > Setup > Services and Application Integration Framework > Inbound ports에서 SGCusAddDetailInfo inbound Service가 있는지 확인 및 Activate 시킴
    • Item Upload 프로그램에서 사용하기 위해 WSDL URI 에 들어가 있는 URI 정보를 notepad등에 복사해 둠

Friday, March 23, 2012

모든 테이블에서 특정값을 찾고 변경하고 싶다면...

이번엔 찾은 값을 다른값으로 변경해주는 기능까지 포함된 Stored Procedure입니다.
유용하게 쓰셈!

--
CREATE PROC [dbo].[SearchAndReplace]

(
@SearchStr nvarchar(100),
@ReplaceStr nvarchar(100)
)
AS
BEGIN

-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string and replace it with another string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 2nd November 2002 13:50 GMT

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110), @SQL nvarchar(4000), @RCTR int
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
SET @RCTR = 0

WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
      ) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL
BEGIN
SET @SQL= 'UPDATE ' + @TableName +
' SET ' + @ColumnName
+ ' =  REPLACE(' + @ColumnName + ', '
+ QUOTENAME(@SearchStr, '''') + ', ' + QUOTENAME(@ReplaceStr, '''') +
') WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
EXEC (@SQL)
SET @RCTR = @RCTR + @@ROWCOUNT
END
END
END

SELECT 'Replaced ' + CAST(@RCTR AS varchar) + ' occurence(s)' AS 'Outcome'
END

모든 테이블에서 특정값을 찾고 싶다면...

SQL Server Database내의 모든 테이블의 'char', 'varchar', 'nchar', 'nvarchar' 값에 들어있는 특정값을 찾아서 출력해 주는 Stored Procedure입니다.

향후 데이터 변경 프로젝트에서 사용하면 유용할 듯 합니다.

--


CREATE PROC [dbo].[SearchAllTables]
(
    @SearchStr nvarchar(100)
)
AS
BEGIN

-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Tested on: SQL Server 7.0 and SQL Server 2000
-- Date modified: 28th July 2002 22:50 GMT

DECLARE @Results TABLE(ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL
BEGIN
    SET @ColumnName = ''
    SET @TableName =
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM    INFORMATION_SCHEMA.TABLES
        WHERE       TABLE_TYPE = 'BASE TABLE'
            AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND OBJECTPROPERTY(
                    OBJECT_ID(
                        QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                         ), 'IsMSShipped'
                           ) = 0
    )

    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM    INFORMATION_SCHEMA.COLUMNS
            WHERE       TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND TABLE_NAME  = PARSENAME(@TableName, 1)
                AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                AND QUOTENAME(COLUMN_NAME) > @ColumnName
        )

        IF @ColumnName IS NOT NULL
        BEGIN
            INSERT INTO @Results
            EXEC
            (
                'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630)
                FROM ' + @TableName + ' (NOLOCK) ' +
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END
END

SELECT ColumnName, ColumnValue FROM @Results
END

Thursday, March 22, 2012

Punctuation 정리


1. 쉼표(Comma, ,)
- 같은 것을 나열할 때
- 동격에 사용
We, engineers are weak in writings.
- 구분에 사용
In steady of lunch, we had snacks.
- 반전에 활용. 이때는 앞뒤로 넣는다.
We quit, however, Math.
- 두 개 이상 열거할 때 마지막 and 앞에 넣는다.
11, 12, and 13
- etc. 는 앞뒤로 넣는다.
The school teaches Math, Physics, Chemistry, etc., besides arts.

2. 쌍점(Colon, :)
- 여러 개를 나열할 때 사용한다. 나열되는 대상은 쉼표로 구분한다.
For example as follows: cat, dog, cow, horse, and goat

3. 쌍반점(Semicolon, ;)
영어에서 쉼표보다 강하고 마침표보다 약할 때 쓴다. 모호성이 있지만 쉼표와 마침표를 쓰지 않는 자리에 많이 쓴다.
- 독립된 두 문장을 접속사 없이 연결할 때 쓴다.
Engineers should know the Technical Writing; What is more, they should understand the Plain English.
- 나열되는 대상이 쉼표로 구분하기에는 길 때 쓴다.
The officers were elected as follows: J.A. Smith, president; B.K. Williams, vice-president; L.P. Donald, secretary.

4. 줄표(Dash, ---)
쉼표보다 강한 쉼으로 강조를 나타낸다.
Push buttons --- whatever the process on which a workman is engaged --- is only the job.

5. 붙임표(Hyphen, -)
복합단어에 사용한다.
- 복합명사에 쓴다.
Vice-president, secretary-general, broken-heart
- 복합형용사에 쓴다.
Machine-cut, rock-round, first-class
- 분수나 by에 쓴다.
Half-time, quarter-mile, by-products
- Bi, tri, semi, demi에서는 안 쓴다.
Bimonthly, tricolor, semiannual
- 라틴 접두사 anti, inter, intra, post, sub, super에는 안 쓴다.
International, postmodern, submission, superpower

6. 괄호(Parentheses, ())
- 짧은 보충설명에 쓴다. 긴 문장은 주석이나 사이드 바로 처리한다. 괄호의 사용은 되도록 자제해야 한다. 괄호의 사용은 게으름을 나타내는 것이다. 괄호 안에 괄호는 게으름의 극치이다. 괄호를 쓰는 대신에 문장을 뒤따르게 하면 된다.
Pneumatic(forced air) shock-absorber is more effective than mechanical one in performance(The test showed 30% higher).
=> … in performance. The test showed 30% higher.

7. 빗금(Slash, /)
'and'와 'or'의 뜻을 동시에 가지고 있어 모호하다. 명확한 글을 위해 빗금은 되도록 사용하지 않아야 한다.

*** 유용한 사이트
a. 쉬운 영어(Plain English) : http://www.plainlanguage.gov http://www.plainenglish.co.uk
미국과 영국을 대표하는 쉬운영어 사이트다. 'Federal Plain Language Guidelines(2010'을 볼 수 있다.

b. 미국증권거래위원회 핸드북 : http://www.sec.gov/news/extra/handbook.htm
금융분야에 유용한 쉬운영어쓰기 안내이다.

c. The Mayfield Handbook of Technical & Scientific Writing
http://www.mit.edu/course/21/21.guide/home.htm
MIT가 학생들을 위하여 과학과 기술에 관한 글쓰기의 모든 것을 모아 놓은 곳이다. 보고서의 종류별로 예문까지 나와 있다. 문법은 말할 것도 없다.

d. David A. McMurrey's Sentence-Style Problems
http://www.io.com/~hcexres/style/index.htm
30년간 대학에서 기술글쓰기를 가르치고, 11년간 IBM에서 신제품 매뉴얼을 담당했던 경력의 소유자가 개설한 사이트이다. 단어와 문장 차원에서 잘못된 것을 총망라하고 있다.


출처 : 한국의 이공계는 영어쓰기가 두렵다. - 임재춘 지음

징기스칸의 말


집안이 나쁘다고 탓하지 말라.
나는 아홉 살 때 아버지를 잃고 마을에서 쫓겨났다.

가난하다고 말하지 말라.
나는 들쥐를 잡아먹으며 연명했고,목숨을 건 전쟁이 내 직업이었고
내 일이었다.

작은 나라에서 태어났다고 말하지 말라.
그림자말고는 친구도 없고 병사로만 10만,백성은 어린애,노인까지
합쳐 2백만도 되지 않았다.

배운게 없다고 힘이 없다고 탓하지 말라.
나는 내 이름도 쓸 줄 몰랐으나
남의 말에 귀 기울이면서 현명해지는 법을 배웠다.

너무 막막하다고, 그래서 포기해야겠다고 말하지 말라.
나는 목에 칼을 쓰고도 탈출했고, 뺨에 화살을 맞고 죽었다 살아
나기도 했다.

적은 밖에 있는 것이 아니라 내 안에 있었다.
나는 내게 거추장스러운 것은 깡그리 쓸어버렸다.

나를 극복하는그순간 나는 징기스칸이 되었다.

- 징기스칸 -

------------------------------------------------------------------

본인이 처한 주위 환경에 굴하지 않는 징기스칸의 정신력...
저런 정신이라면 이 세상에서 무엇인가는 이루고 여행을 떠나지 않을까
생각이 든다.

Tuesday, March 20, 2012

EMC HVS(High Volume Server) 성능 테스트

EMC HVS(High Volume Server) 시스템 테스트 시나리오
Test 항목 : HVS를 이용한 등록 (엔진)

1.    실시 회사 : (XXXX: Documentum Server 6.5sp1)
1.1          HVS(High Volume Server)를 이용한 이미지 등록
구분
HVS 기능
Data 등록건수
적용
유무
소요시간/DB Size
DB
Imae
Injection
Speed
Batch
1
1
342297 millisecond = 5 7
225922 millisecond = 3 8
5
5
2240312 millisecond = 37 3
1260250 millisecond = 21
Scope








Batch + Scope




DB Size
Lightweight Object
초기 DB File Size
DM_XX_TEST_REP_DB.DBF 180MB
DM_XX_TEST_REP_IND.DBF 180MB
5
5
DM_XX_TEST_REP_DB.DBF 330MB
DM_XX_TEST_REP_DB.DBF 180MB
DM_XX_TEST_REP_DB.DBF 180MB
DM_XX_TEST_REP_IND.DBF 180MB

DB Partitioning











2.     Test 시스템 H/W S/W 구성
모델
용도
설치 S/W
비고
구분
내역
Lenovo T61
(Laptop)
이미지 서버
O/S
Windows Server 2003 Standard Edition SP2

CPU
Dual Core 2.5GHz

Memory
4G (/pae 옵션 적용)

DBMS
Oracle 10.2.0.3

DCTM
Content Server 6.5 sp1
DA (Documentum Administrator)
HVS(High Volume Server)




HVS - Batch Processing
Object Count = 10,000

1245211117265
1245211343187
225922 = 3분 8초


1245211836812
1245212179109
342297 = 5분 7초


Object Count = 50,000
1245292285562
1245293823328
1537766 = 25분 6초

1245374526359
1245375786609
1260250 = 21분

1245293993156
1245296233468
2240312 = 37분 3초


HVS - LightWeight Object Test
초기 DB Size
DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)
DM_XX_TEST_REP_IND.DBF 180MB (188,751,872 바이트)

초기 HDD 여유 공간
52.2GB

lwso 적용전 DB Size
5만건 저장
DM_XX_TEST_REP_DB.DBF 330MB (346,038,272 바이트)
DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)

HDD 공간
41.8GB

사용된 Object(LightWeight Object 적용 안됨)
CREATE TYPE "emc_payment_check" (
account integer,
check_number integer,
transaction_date date,
amount float,
bank_code integer,
routing integer
) WITH SUPERTYPE "dm_document" PUBLISH


-- lwso 적용 전 DB Size
5만건 저장
DM_XX_TEST_REP_DB.DBF 330MB (346,038,272 바이트)
DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)

HDD 공간 = 41.8GB

-- lwso 적용 후 DB Size
CREATE SHAREABLE TYPE emc_payment_bank (
bank_code integer,
routing integer,
branch integer repeating
) WITH SUPERTYPE dm_sysobject PUBLISH


CREATE LIGHTWEIGHT TYPE emc_payment_check (
account integer,
check_Number integer,
transaction_date date,
amount float,
deductions float repeating
) SHARES emc_payment_bank PUBLISH


HDD 공간 = 41.9GB
1245377891171
1245379119671
1228500 = 20분 4초

DM_XX_TEST_REP_DB.DBF 180MB (188,751,872 바이트)
DM_XX_TEST_REP_IND.DBF 180MB (188,751,872 바이트)







java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpath "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" batch.StdBatchingExample

java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpath "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" lwso.lwsoExample

java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpath "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" batch.lw_batch xn_test_rep dmadmin dmadmin 1000 50000




C:\>java.exe -Xms256m -Xmx1024m -Xbootclasspath/a:C:\Documentum\config -classpat
h "D:\HVS_Test\HVS\bin;C:\Program Files\Documentum\Shared\dfc.jar;C:\Program Files\Documentum\Shared\log4j.jar;C:\Program Files\Documentum\dctm.jar" batch.lw_batch xn_test_rep dmadmin dmadmin 1000 50000
Started @ 2009. 6. 22 오전 10:35:29
Finished @ 2009. 6. 22 오전 10:51:44
Elapsed 975 sec


한글 파일 @!%&.tif
한글 파일명으로_테스트.tif