# ReplyProcProgramUpload

### int ReplyProcProgramUpload(int lMsgId, int ACK, string sFilePath, string sVerInfo)

호스트의 레시피 업로드 요청(S7F5)에 대해, 실제 레시피 데이터가 담긴 파일 경로와 버전 정보를 포함하여 응답(S7F6)을 전송합니다. 라이브러리가 지정된 경로의 파일을 읽어 바이트 스트림으로 변환해 호스트로 보내줍니다.

Parameters

<table data-header-hidden><thead><tr><th width="168"></th><th width="126"></th><th></th></tr></thead><tbody><tr><td><strong>Name</strong></td><td><strong>Type</strong></td><td><strong>Description</strong></td></tr><tr><td>lMsgId</td><td>int</td><td>응답을 보낼 원본 메시지(S7F5)의 고유 ID</td></tr><tr><td>ACK</td><td>int</td><td>승인 결과 코드 (0: 수락 및 데이터 전송, 그 외: 에러 코드)</td></tr><tr><td>sFilePath</td><td>string</td><td>호스트로 전송할 실제 레시피 파일의 로컬 경로</td></tr><tr><td>sVerInfo</td><td>string</td><td>레시피의 버전이나 부가 정보</td></tr></tbody></table>

```csharp
private void HostWantPPBody(int lMsgId)                 // S7F5 or S21F5 PPBODY 요청을 받음
{
    // 요청받은 PPID 조회
    int nCount = 0, ACK = 0;
    string[] arrPPID = { };
    string strPPID = "";
    string strFilePath = "D:\\1_SAMPLES\\GEM\\C#\\SampleGem\\SampleGem\\bin\\x64\\Debug\\TEST.INI";
    m_gem.GetProcProgramInfo(lMsgId, ref nCount, ref arrPPID);
    if (nCount == 1) strPPID = arrPPID[0];
    m_gem.ReplyProcProgramUpload(lMsgId, ACK, strFilePath, "Ver7.0.5"); // 응답 -> 파일 업로드
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://nviasoft.gitbook.io/nviasoft-docs/api-reference/undefined-3/replyprocprogramupload.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
