Sep 12, 2016

Shared vendor account (하나의 벤더 계정 넘버시퀀스를 모든 법인에서 사용)

1. 모든 벤더 넘버시퀀스를 삭제 합니다.
 
2. 벤더 넘버시퀀스 클래스의 데이터 에어리어 부분을 주석 처리 합니다.
 
3. 벤더의 스콥 변경 및 파라메터 타입을 삭제 합니다.
4. 벤더 넘버시퀀스를 다시 로드합니다.
 
5. 넘버시퀀스 모듈에서 Generate버튼을 클릭하여 넘버시퀀스 설정합니다.

5. 벤더는 원래 각 컴퍼니별로 불러왔으나 위의 조작으로 인하여 하나의 벤더 넘버시퀀스로 호출 됩니다.

6. 생성된 벤더 넘버시퀀스를 확인 하게 되면 Shard에 벤더 계정을 레퍼런스로 가지고 있습니다.

소스코드(Source code)
static void SharedVendAccount001(Args _args)
{
    NumberSeqModuleVendor      _NumberSeqModuleVendor = new NumberSeqModuleVendor();
    _NumberSeqModuleVendor.createReferencesForScope();
    _NumberSeqModuleVendor.load();
}

static void SharedVendAccount002(Args _args)
{
    NumberSequenceDatatype              NumberSequenceDatatype;
    NumberSequenceDatatypeParameterType NumberSequenceDatatypeParameterType;
    //NumberSeqApplicationModule n = new NumberSeqModuleCustomer();
    //n.load();
    ttsbegin;
    select forUpdate NumberSequenceDatatype
    join forUpdate NumberSequenceDatatypeParameterType
    where NumberSequenceDatatype.RecId == NumberSequenceDatatypeParameterType.NumberSequenceDatatype &&
    NumberSequenceDatatype.DatatypeId == extendedTypeNum(VendAccount);
    //Change the extended data type to the number sequence you want to be Shared (e.g. CustAccount)
    if(NumberSequenceDatatype.RecId && NumberSequenceDatatype.ScopeType == 0)
    {
        NumberSequenceDatatype.ScopeType = 1;
        NumberSequenceDatatype.update();
    }
    if(NumberSequenceDatatypeParameterType.RecId)
    {
        NumberSequenceDatatypeParameterType.delete();
    }
    ttsCommit;
}
 


No comments:

Post a Comment