티스토리 뷰
중소형 회사들이 많이 사용하는 E카운트 ERP에 대해서 요즘 공부를 하는 중입니다.
중소기업 ERP 3대 솔루션 시장에서 사용하는 사용량(매출액) 2020년도 기준 조사를 잠시 해보니, 1위 이카운트(약300억), 2위 얼마에요(약130억), 3위 경리나라(약90억) 수준인데요, 아무래도 재고관리를 하려면 경리나라는 좀 약하고, 이카운트가 제조업에는 강점이 많네요. 다만, 경리나라는 핀테크나 기타 요즘 트렌드에 맞는 화면구성(UI, 커스텀마이징)으로 경리나라를 선호하는 트렌드가 있어요. '얼마에요'는 약간 중간위치 정도되는 것 같습니다.
Ecount ERP가 확장성과 API를 제공함으로써 더 사용자가 활용할 분야가 많은 것 같습니다.
막막한 Ecount ERP에 대해 조금씩 알아가는 내용 공유해 볼게요.
정보를 주고 받으려니, 테스터 함수를 만들어서 일단 시험해 보고 있습니다.
E카운트에서 제공하는 API테스트 키를 받고 시작하면서 하나하나 도전하고 있습니다.
ERP API에 대한 메뉴얼 형식으로 되어있는데, 최초 인증키를 발급받아야 접근할 수 있습니다.
직접 신호를 받기 위해서 여러가지 형태로 테스터를 진행했습니다.
function testit() {
// Json 결과값 연속배열로 실제값을 넣기 연구자료 주문서를 기준으로 일단 코딩한다.
console.log.clear;
let i;
for(i=0;i<grid.getRowCount();i++)
console.log(Number(grid.getValue(i, 'thickness'))) ;
let newjson = new Array(); // 여기에 누적해서 담을 것이다.
const headerdata = '"SaleOrderList":';
const tmpdata = { "Line": "0",
"BulkDatas": {
"IO_DATE": "", //입력안하면 현재날짜
"UPLOAD_SER_NO": "",
"CUST": "", // 거래처코드는 필수항목
"CUST_DES": "",
"EMP_CD": "23468", // 최주임님
"WH_CD": "", // 화면에 출하창고로 표기하고 입력받음 창고필수 eg J02
"IO_TYPE": "",
"PJT_CD": "",
"DOC_NO": "",
"PROD_CD": "211020008", // 품목코드 필수항목
"PROD_DES": "(test) 주문입력 자동입력", // 품목코드로 자동생성
"SIZE_DES": "",
"UQTY": "",
"QTY": "1",
"PRICE": "100",
"USER_PRICE_VAT": "",
"SUPPLY_AMT": "",
"SUPPLY_AMT_F": "",
"VAT_AMT": "",
}
}
let jsontmp = JSON.parse(JSON.stringify(tmpdata));
let savejson = new Array();
savejson.push(jsontmp);
savejson.push(jsontmp);
savejson.push(jsontmp);
savejson.push(jsontmp);
console.log(typeof jsontmp);
console.log(typeof savejson);
console.log(jsontmp);
console.log(savejson);
// 전후 배열형태 추가함 [{ 등등
// Array 형태 다시 stringify해야 함.
let strjson = headerdata + JSON.stringify(savejson) ;
// console.log(typeof strjson);
// console.log(strjson);
// 이제 전체를 parse해서 배열/객체 형태로 바꿔줌.
let resultjson = JSON.stringify(strjson);
console.log(typeof resultjson);
console.log(resultjson);
const path = [ 'SaleOrderList']
let result = path.reduce((a,v) => a[v], tmp) // 경로를 갖고 오는 것.
console.log(result);
newjson.splice(jsontmp,0,jsontmp.SaleOrderList);
console.log(data);
console.log(newjson);
console.log(JSON.stringify(newjson, replacer));
const jsontmp = JSON.stringify(data, replacer);
// obj = JSON.parse(data);
const jsonresult = jsontmp;
const par = JSON.parse(jsonresult);
console.log(jsonresult);
function replacer(key, value) {
// document.write(key + " : " + value + '<br>');
if(key == 'PROD_CD') {
return $('#PROD_CD').val(); // 품명코드 화면입력분을 적용함.
}
if(key == 'PROD_DES') {
return $('#PROD_DES').val(); // 품명규격 화면입력분을 적용함.
}
if(key == 'EMP_CD') {
return $('#EMP_CD').val(); // 품명규격 화면입력분을 적용함.
}else {
return value;
}
// Json 결과값 연구자료 (E카운트 전송 후 성공여부 확인)
console.log.clear;
const data = {
"ProductList": [{
"Line": "0",
"BulkDatas": {
"PROD_CD": "test", // 품목코드연습 앞에 'test'란 단어를 넣어서 많들어봄 20자리까지 가능함.
"PROD_DES": "(Test) 품명 자동전송",
"SIZE_FLAG": "1",
"SIZE_DES": "",
"EMP_CD": "23468", // 원래 예제파일에는 없는 사항인데 최주임님 넣어줌
"UNIT": "Kg",
"PROD_TYPE": "",
"SET_FLAG": "",
"BAL_FLAG": "",
"WH_CD": "",
"IN_PRICE": "",
"IN_PRICE_VAT": "",
"OUT_PRICE": "",
"OUT_PRICE_VAT": "",
"REMARKS_WIN": "",
"CLASS_CD": "",
"CLASS_CD2": "",
"CLASS_CD3": "",
"BAR_CODE": "",
"VAT_YN": "",
"TAX": "",
"VAT_RATE_BY_BASE_YN": "",
"VAT_RATE_BY": "",
"CS_FLAG": "",
"REMARKS": "",
"INSPECT_TYPE_CD": "",
"INSPECT_STATUS": "",
"SAMPLE_PERCENT": "",
"EXCH_RATE": "",
"DENO_RATE": "",
"SAFE_A0001": "",
"SAFE_A0002": "",
"SAFE_A0003": "",
"SAFE_A0004": "",
"SAFE_A0005": "",
"SAFE_A0006": "",
"SAFE_A0007": "",
"CSORD_C0001": "",
"CSORD_TEXT": "",
"CSORD_C0003": "",
"IN_TERM": "",
"MIN_QTY": "",
"CUST": "1378624517", // 구매처코드는 등록된 코드로 넣어야 함. (자료 갖고 있어야 함.) 금영스틸을 샘플로 넣음.
"OUT_PRICE1": "",
"OUT_PRICE1_VAT_YN": "",
"OUT_PRICE2": "",
"OUT_PRICE2_VAT_YN": "",
"OUT_PRICE3": "",
"OUT_PRICE3_VAT_YN": "",
"OUT_PRICE4": "",
"OUT_PRICE4_VAT_YN": "",
"OUT_PRICE5": "",
"OUT_PRICE5_VAT_YN": "",
"OUT_PRICE6": "",
"OUT_PRICE6_VAT_YN": "",
"OUT_PRICE7": "",
"OUT_PRICE7_VAT_YN": "",
"OUT_PRICE8": "",
"OUT_PRICE8_VAT_YN": "",
"OUT_PRICE9": "",
"OUT_PRICE9_VAT_YN": "",
"OUT_PRICE10": "",
"OUT_PRICE10_VAT_YN": "",
"OUTSIDE_PRICE": "",
"OUTSIDE_PRICE_VAT": "",
"LABOR_WEIGHT": "",
"EXPENSES_WEIGHT": "",
"MATERIAL_COST": "",
"EXPENSE_COST": "",
"LABOR_COST": "",
"OUT_COST": "",
"CONT1": "전체", // 담당자 설정부분 전체라는 단어를 넣음
"CONT2": "",
"CONT3": "",
"CONT4": "",
"CONT5": "",
"CONT6": "",
"NO_USER1": "",
"NO_USER2": "",
"NO_USER3": "",
"NO_USER4": "",
"NO_USER5": "",
"NO_USER6": "",
"NO_USER7": "",
"NO_USER8": "",
"NO_USER9": "",
"NO_USER10": "",
"ITEM_TYPE": "",
"SERIAL_TYPE": "",
"PROD_SELL_TYPE": "",
"PROD_WHMOVE_TYPE": "",
"QC_BUY_TYPE": "",
"QC_YN": ""
}
}]
}
const jsontmp = JSON.stringify(data, replacer);
// obj = JSON.parse(data);
const jsonresult = jsontmp;
const par = JSON.parse(jsonresult);
console.log(jsonresult);
function replacer(key, value) {
// document.write(key + " : " + value + '<br>');
if(key == 'PROD_CD') {
return $('#PROD_CD').val(); // 품명코드 화면입력분을 적용함.
}
if(key == 'PROD_DES') {
return $('#PROD_DES').val(); // 품명규격 화면입력분을 적용함.
}
if(key == 'EMP_CD') {
return $('#EMP_CD').val(); // 품명규격 화면입력분을 적용함.
}else {
return value;
}
}
console.log(par);
console.log(par.Data.ResultDetails[0].IsSuccess); // 결과값을 받으려면 이렇게 코드를 작성해야 함.
const data = { // Json 결과값 연구자료
"Data": {
"EXPIRE_DATE": "",
"QUANTITY_INFO": "시간당 연속 오류 제한 건수 : 0/30건, 1시간 허용량 : 20/30000건, 1일 허용량 : 21/100000건",
"SuccessCnt": 1,
"FailCnt": 0,
"ResultDetails": [
{
"Line": 0,
"IsSuccess": true,
"TotalError": "[전표묶음0] OK",
"Errors": null,
"Code": null
}
],
"SlipNos": [
"20211125-21"
]
},
"Status": "200",
"Errors": null,
"Error": null,
"Timestamp": "2021-11-25 12:50:36.673",
"RequestKey": null,
"IsEnableNoL4": false,
"RefreshTimestamp": "0",
"AsyncActionKey": null
}
const jsontmp = JSON.stringify(data);
// obj = JSON.parse(data);
const jsonresult = jsontmp;
const par = JSON.parse(jsonresult);
console.log(jsonresult);
console.log(par);
console.log(par.Data.ResultDetails[0].IsSuccess); // 결과값을 받으려면 이렇게 코드를 작성해야 함.
}
판매주문을 넣는 양식인데, 폼이나 기타 자료를 안내해 주고 있네요.
메뉴얼보면서 차근차근 하나씩 만들어서 UI식으로 업무를 처리할 수 있도록 시간을 두고 개발해 보려고 합니다.
중소기업들 전산화를 하는데, 어려움이 많습니다. 전산인력이라고 따로 뽑을 수도 없는 환경에서 뭔가 체계적으로 관리하고 싶은 분들에게 Ecount API는 새로운 도전이 될 수 있을 것입니다.
하나씩 해나가는 모습을 보이고 싶네요.
새벽에 끄적끄적 해봅니다. 오늘도 몇가지 성공해서 기분은 좋네요~ 굿나잇 하시길...
'IT tech Coding > EcountERP' 카테고리의 다른 글
EcountERP에 품목코드 전송하는 모듈 제작 (2) | 2023.04.19 |
---|---|
[레이져산업 EcountERP] 트럼프에서 받은 xml파일처리에 대한 연구 (0) | 2023.03.23 |
EcountERP API 판매입력을 위한 여러 자료들 (0) | 2023.03.16 |
- Total
- Today
- Yesterday
- json파일편하게보는법
- 효율적코딩방법
- 코딩효율성
- 오토핫키가이드
- #파이썬패키징
- json파일형태보기
- 엑셀보호
- isset을 적용해야 하는 이유
- 오블완
- 프로그래머생활
- sql문장 날짜계산
- Bootstrap 5
- 1. #웹개발 2. #로트번호 3. #성적서보기 4. #ajax 5. #jquery 6. #php 7. #프론트엔드 8. #백엔드 9. #부트스트랩 10. #웹기능구현
- #InstallForge
- 파이썬코드줄바꿈방법
- General error: 2031
- 테크에능한여성
- 엑셀셀보호
- 엑셀입력보호
- 도면자동생성
- #프로그램설치
- 캐드자동작도
- chatGPT3.5파이썬버전
- ajax오류메시지
- 뫄프로그래밍
- 구글드라이브API
- 스크립트작성기초
- 코딩튜토리얼
- coalesce는 한국어로 "코얼레스크" 또는 "코얼리스"
- 티스토리챌린지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |