2014-02-18 7 views
0

MapForce 2013에서 매핑을 만들고 MFX 파일을 내 보냈습니다. 이제 MapForce Server를 사용하여 매핑을 실행할 수 있어야합니다. 문제는 입력 EDI 파일과 출력 파일을 모두 지정해야한다는 것입니다. 필자가 알 수있는 한, 사용 패턴은 MFX 자체의 입/출력 구성을 사용하여 MapForce 서버에서 매핑을 실행하는 것으로, 명령 줄에서 전달되지 않습니다.단일 MFX를 통해 많은 EDI 파일 처리

입력/출력을 표준 파일 이름으로 변경 한 다음 매핑을 수행하기 전에 해당 경로에 입력 파일을 작성한 다음 매핑이 완료되면 표준 출력 파일 경로에서 출력을 가져 오는 것으로 가정합니다.

하지만이 같은 것을 할 수 있기를 원합니다 :

MapForceServer run -in=MyInputFile.txt -out=MyOutputFile.xml MyMapping.mfx > MyLogFile.txt 

이 가능한 같은가요? 아마도 매핑 내에서 매개 변수를 사용하고 있을까요?

답변

0

유사한 상황을 처리 할 때 두 가지 옵션이 있습니다.

옵션 1- 구성 요소 설정에서 입력 XML 파일을 * .xml로 설정하면 mapforceserver.exe는 소스가 xml 인 것으로 가정하여 디렉토리의 모든 txt를 자동으로 처리합니다 (텍스트는 동일 함). 아래 예제와 마찬가지로 처리 후 파일을 다른 폴더로 이동하도록 정리 루틴을 설정할 수 있습니다.

참고 : 스키마 파일이있는 폴더를 찾습니다.

옵션 2 - 출력물이 XML이므로 Altova의 raptorxml (다른 라이선스 비용을 랙에 올릴 수 있음)을 사용할 수 있습니다. 이제 XSLT 2.0에서 코드를 생성하고 배치 파일을 사용하여 자동으로 실행할 수 있습니다.

::@echo off 
for %%f IN (*.xml) DO (RaptorXML xslt --xslt-version=2 --input="%%f" --output="out/%%f" %* "mymapping.xslt" 

if NOT errorlevel 1 move "%%f" processed 
if errorlevel 1 move "%%f" error) 
sleep 15 
mymapping.bat 

나는 15 초마다 다시 검사를위한 루프에 sleep 명령의 배치를 던졌다. 불행히도 출력 대상이 데이터베이스 인 경우에는 작동하지 않습니다.

+0

1 개의 마지막 주 1 ... 이것의 뒤에 mapforce의 많은 마일 지금. 원래의 질문에 좀 더 직접 대답하려면 소스에 파일 이름 대신 *를 사용하면 mfx가 폴더의 모든 것을 처리합니다. –