function 모듈 실습
주제 목차 · 이전: 확장 모듈 개념 · 다음: 의존성과 재적재 관리
이 문서의 결과: function 모듈로 서버 함수를 작성하고 거래로 호출한다.
시작 조건
- 08. transact 거래 계약에서
CommandType: "D"거래를 만들어 봤습니다.
function 모듈 기본 구조
contracts/function/csharp/HDS/BOD/BFN010
├─featureMain.cs <- 실행 로직
└─featureMeta.json <- 함수 메타 정보
featureMain.cs(또는 Node.js라면 featureMain.js)에 실제 실행 로직을 작성하고, featureMeta.json에 이 함수의 입출력 정보를 기술합니다.
거래 계약에서 function 호출하기
{
"ApplicationID": "HDS",
"ProjectID": "BOD",
"TransactionID": "BOD013",
"Services": [
{
"ServiceID": "FD01",
"Authorize": false,
"ReturnType": "Json",
"CommandType": "F",
"TransactionScope": false,
"Inputs": [
{ "ModelID": "Dynamic", "Fields": [], "Type": "Row" }
],
"Outputs": [
{ "ModelID": "Dynamic", "Fields": [], "Type": "Form" }
]
}
]
}
CommandType을 "D"(dbclient) 대신 "F"(function)로 바꾸면 이 서비스는 SQL이 아니라 BFN010 함수를 실행합니다. Inputs/Outputs 데이터 맵 규칙은 08. transact 거래 계약에서 배운 것과 동일합니다.