convert()
sysLib.convert() 시스템 함수는 EBCDIC(호스트) 형식과 ASCII(워크스테이션) 형식 간에 데이터를 변환하거나 단일 형식 내에서 코드 - 페이지 변환을 수행합니다.
구문
sysLib.convert(
target ANY inOut,
[direction ConvertDirection in,
conversionTable STRING in] )
- target
- 변환할 데이터가 들어 있는 변수의 이름입니다. 데이터는
대상 오브젝트의 최하위 레벨 필드(하위 구조가 없는 필드)에 대한
필드 정의를 기반으로 적절히 변환됩니다.
가변 길이 레코드는 현재 레코드의 길이와 관련해서만 변환됩니다. 현재 레코드의 길이는 레코드에서 numElementsItem을 사용하여 계산되거나 레코드의 lengthItem에서 설정됩니다. 가변 길이 레코드가 숫자 필드 또는 DBCS 문자 가운데에서 끝나는 경우 변환 오류가 발생하고 프로그램이 종료됩니다.
- direction
- 변환 방향입니다. conversionTable이
지정되면 방향이 필수이고 그렇지 않으면 선택적입니다. 이 매개변수에서는
ConvertDirection 열거의 값을 사용합니다.
- 원격
- 기본값입니다. 데이터는 원격 형식으로 간주되고 로컬 형식으로 변환됩니다.
- 로컬
- 데이터는 로컬 형식으로 간주되고 원격 형식으로 변환됩니다(변환표에 정의된 대로).
- conversionTable
- 데이터 변환의 변환표 이름을 지정하는 변수 또는 리터럴입니다. 기본값은 프로그램 생성시 targetNLS 빌드 디스크립터 옵션의 자국어 코드와 연관된 변환표입니다.
정의 고려사항
연계 옵션 파트를 사용하여 다음
조치를 수행할 수 있습니다.
- 원격 호출의 자동 데이터 변환 생성을 요청합니다.
- 원격 비동기 트랜잭션을 시작합니다.
- 원격 파일에 액세스합니다.
예제
Record OrderRec
10 record_type char(3);
10 productName char(20);
end
Record NewOrderRec
10 record_type char(3);
10 productNumber bigint;
10 unitCost decimal(7);
10 skuNum char(8);
end
Program ProgramX type basicProgram
myOrderRec OrderRec;
myNewOrderRec NewOrderRec {redefines = "myOrderRec"};
myConvTable char(8);
function main();
myConvTable = "CSOX850"; // conversion table for US English EBCDIC
if (myOrderRec.record_type == "00A")
sysLib.convert(myOrderRec, ConvertDirection.local, myConvTable);
else
sysLib.convert(myNewOrderRec, ConvertDirection.local, myConvTable);
end call ProgramY myOrderRec;
endend