명세서 게시 기능 개선

비고

Dynamics 365 Commerce의 소매 관심 그룹이 Yammer에서 Viva Engage로 이동했습니다. 새 Viva Engage 커뮤니티에 액세스할 수 없는 경우 이 양식(https://aka.ms/JoinD365commerceVivaEngageCommunity)을 작성하여 추가하고 최신 토론에 계속 참여하세요.

이 문서에서는 Microsoft Dynamics 365 Commerce의 문 게시 기능에 대해 Microsoft가 개선한 내용을 설명합니다.

활성화

기본적으로 재무 및 운영 7.3.2를 배포하는 동안 이 프로그램은 명령문 게시에 레거시 기능을 사용합니다. 향상된 명세서 게시 기능을 사용하려면 구성 키를 활성화하십시오.

  • 시스템 관리>설정>라이선스 구성으로 이동합니다. 소매 및 상거래 노드에서 명세서(레거시) 확인란의 선택을 취소하고 명세서 확인란을 선택합니다.

새 문 구성 키를 켜면 Statements 라는 새 메뉴 항목 이 표시됩니다. 이 메뉴 항목을 사용하여 명세서를 수동으로 작성하고, 계산하며, 게시할 수 있습니다. 이 메뉴 항목에는 일괄 처리 게시 프로세스를 사용할 때 오류가 발생하는 문도 표시됩니다. ( 명세서(레거시) 구성 키를 켜면 메뉴 항목의 이름이 명세서 열기로 표시됩니다.)

Commerce에는 이러한 구성 키와 관련된 다음과 같은 유효성 검사가 포함됩니다.

  • 두 구성 키를 동시에 켤 수는 없습니다.
  • 수명 주기 동안 지정된 문에서 수행하는 모든 작업에 동일한 구성 키를 사용해야 합니다(만들기, 계산, 지우기, 게시 등). 예를 들어 명세서(레거시) 구성 키가 켜져 있는 동안에는 명세서를 만들고 계산한 다음 명세서 구성 키가 켜져 있는 동안 동일한 명세서를 게시하려고 할 수 없습니다.

비고

향상된 문 게시 기능을 위해 문 구성 키를 사용하고, 강력한 이유가 없는 한 문 (레거시) 구성 키를 대신 사용하지 마십시오. Microsoft는 새롭고 개선된 성명서 게시 기능에 계속 투자하고 있으며, 이를 활용할 수 있는 가장 빠른 기회에 전환해야 합니다. 레거시 명세서 기장 기능은 8.0 릴리스부터 더 이상 사용되지 않습니다.

설정

명령문 게시 기능 개선의 일환으로 상거래 매개 변수 페이지의 게시 탭에 있는 FastTab 문에 세 가지 새로운 매개 변수가 도입되었습니다.

  • clear 문 사용 안 함 – 이 옵션은 레거시 문 게시 기능에만 적용됩니다. 사용자가 반게시된 상태의 문장을 지울 수 없도록 하려면 이 옵션을 아니요로 설정합니다. 임시 게시된 상태의 문장이 제거되면 데이터가 손상됩니다. 예외적인 상황에서만 이 옵션을 Yes 로 설정합니다.

  • 계산 중 인벤토리 예약 – 인벤토리 예약을 위해 인벤토리 게시 일괄 처리 작업을 사용하고, 이 옵션을 아니요로 설정합니다. 이 옵션을 아니요로 설정하면 개선된 명세서 게시 기능이 계산 시 재고 예약 항목 생성을 시도하지 않습니다(재고 기장 배치 작업을 통해 항목이 아직 생성되지 않은 경우). 대신 이 기능은 기장 시에만 재고 예약 항목을 생성합니다. 이 구현은 디자인 선택이었으며 계산 프로세스와 기장 프로세스 사이의 시간 창이 일반적으로 작다는 사실을 기반으로 했습니다. 단, 계산 시 재고를 예약하려면 이 옵션을 로 설정할 수 있습니다.

    레거시 명세서 기장 기능은 이 옵션의 설정에 관계없이 명세서 계산 프로세스 중에 항상 재고를 예약합니다(기장 재고 배치 작업을 통해 예약이 아직 수행되지 않은 경우).

  • 계산 사용 안 함 필수 – 이 옵션을 로 설정하면 계산된 금액과 명세서의 거래 금액 간의 차이가 매장에 대한 명세서 빠른 탭에 정의된 임계값을 벗어나더라도 명세서에 대한 기장 프로세스가 계속됩니다.

비고

Commerce 버전 10.0.14 릴리스부터 소매 명세서 - 지속적인 피드 기능이 활성화되면 기장 재고 일괄 처리 기장 작업을 더 이상 적용할 수 없으며 실행할 수 없습니다.

처리

메뉴 항목 명세서 일괄 계산명세서 일괄 게시를 사용하여 명세서를 일괄 계산하고 게시할 수 있습니다. 또는 향상된 문 게시 기능이 제공하는 메뉴 항목을 사용하여 문을 수동으로 계산하고 게시할 수 있습니다.

명세서를 계산하고 배치로 기장하는 프로세스 및 단계는 레거시 명세서 기장 기능에서와 동일합니다. 문서의 핵심 백엔드 처리에서 상당한 개선이 이루어졌습니다. 이러한 개선 사항으로 프로세스의 복원력이 향상되고 상태 및 오류 정보를 보다 잘 파악할 수 있습니다. 따라서 사용자는 오류의 근본 원인을 해결한 다음 데이터 손상을 일으키지 않고 데이터 수정을 요구하지 않고 기장 프로세스를 계속할 수 있습니다.

다음 섹션에서는 명세서 및 기장된 명세서에 대한 사용자 인터페이스에 표시되는 명세서 기장 기능의 몇 가지 주요 개선 사항에 대해 설명합니다.

상태 세부 정보

이제 문 게시 루틴은 계산 및 게시 프로세스에서 작동하는 새 상태 모델을 사용합니다.

다음 표에서는 계산 프로세스 중 다양한 상태와 해당 순서에 대해 설명합니다.

상태 순서 Description
1 시작됨 문서가 만들어지고 계산할 준비가 완료되었습니다.
2 표시됨 루틴은 문 매개 변수를 기반으로 문의 범위에 있는 트랜잭션을 식별하고 문 ID로 표시합니다.
3 계산됨 루틴은 문 줄을 계산하고 표시합니다.

다음 표에서는 기장 프로세스 중 다양한 상태와 해당 순서에 대해 설명합니다.

상태 순서 Description
1 검사 루틴은 매개 변수(예: 처리 요금)와 문 및 문 줄(예: 계산된 양과 트랜잭션 금액 간의 차이)과 관련된 여러 유효성 검사를 수행합니다.
2 집계 루틴은 구성에 따라 명명된 고객 및 이름 없는 고객의 판매 트랜잭션을 집계합니다. 집계된 모든 거래는 최종적으로 판매 주문으로 변환됩니다.
3 고객 주문 생성됨 루틴은 집계된 트랜잭션을 기반으로 시스템에서 판매 주문을 만듭니다.
4 고객 주문 송장 발부됨 이 루틴은 판매 주문을 처리합니다.
5 할인 기장됨 루틴은 구성에 따라 정기 할인 저널을 게시합니다.
6 수익/경비 기장됨 루틴은 소득/비용 거래를 바우처로 게시합니다.
7 바우처 연결됨 루틴은 결제 저널을 만들고 해당 청구서에 연결합니다.
8 지불 기장됨 일상적인 기장 지불 분개장.
9 기프트 카드 기장됨 이 루틴은 기프트 카드 거래를 바우처로 게시합니다.
10 게시됨 루틴은 명령문을 게시된 것으로 표시합니다.

이전 테이블의 각 상태는 독립적이지만 상태는 위에서 아래로 흐르는 계층적 종속성을 가집니다. 시스템에서 상태를 처리하는 동안 오류가 발생하면 문의 상태를 이전 상태로 되돌려 줍니다. 이후에 프로세스를 다시 시도하면 실패한 상태에서 다시 시작되고 계속 진행됩니다. 이 접근 방식에는 다음과 같은 장점이 있습니다.

  • 사용자는 오류가 발생한 상태를 완벽하게 파악할 수 있습니다.

  • 데이터 손상을 방지할 수 있습니다. 예를 들어 기존 문서 게시 기능에서 일부 판매 주문은 송장이 발행되었지만 다른 주문은 여전히 미결 상태였습니다. 청구서 게시에 오류가 있었기 때문에 일부 결제 저널에는 결제할 해당 청구서가 없습니다.

  • 사용자는 명세서 실행 세부 정보 그룹에 있는 상태 세부 정보 버튼을 사용하여 명세서의 현재 상태를 볼 수 있습니다. 상태 세부 정보 페이지에는 세 개의 섹션이 있습니다.

    • 첫 번째 섹션에는 오류가 발생한 경우 오류 코드 및 자세한 오류 메시지와 함께 명세서의 현재 상태가 표시됩니다.
    • 두 번째 섹션에서는 계산 프로세스의 다양한 상태를 보여 줍니다. 시각적 신호는 프로세스가 성공적으로 실행되었음을 나타내고, 오류로 인해 프로세스를 실행할 수 없음을 나타내며, 프로세스가 아직 실행되지 않았음을 나타냅니다.
    • 세 번째 섹션에서는 기장 프로세스의 다양한 상태를 보여 줍니다. 시각적 신호는 프로세스가 성공적으로 실행되었음을 나타내고, 오류로 인해 프로세스를 실행할 수 없음을 나타내며, 프로세스가 아직 실행되지 않았음을 나타냅니다.

또한 두 번째 및 세 번째 섹션의 헤더에는 관련 프로세스의 전반적인 상태가 표시됩니다.

이벤트 로그

진술은 생성, 계산, 지우기 및 게시와 같은 다양한 작업을 수행합니다. 문의 수명 주기 동안 시스템은 동일한 작업의 여러 인스턴스를 호출할 수 있습니다. 예를 들어 문을 만들고 계산한 후 문을 지우고 다시 계산할 수 있습니다. 명세서 실행 세부 정보 그룹의 이벤트 로그 버튼은 시스템에서 명세서에 대해 호출하는 다양한 작업의 전체 감사 내역을 제공합니다. 또한 시스템에서 해당 작업을 호출할 때도 표시됩니다.

집계된 거래

게시 프로세스 중에 시스템은 고객 및 제품별로 현금 및 캐리 거래를 집계합니다. 이 집계는 시스템에서 만드는 판매 주문 및 줄의 수를 줄입니다. 시스템은 집계된 트랜잭션을 저장하고 이를 사용하여 판매 주문을 만듭니다. 집계된 각 트랜잭션은 시스템에서 하나의 해당 판매 주문을 만듭니다.

명세서가 완전히 게시되지 않으면 명세서에서 집계된 거래를 볼 수 있습니다. 작업 창의 명세서 탭에 있는 실행 세부 정보 그룹에서 집계된 거래를 선택합니다.

완전히 기장되지 않은 명세서에 대한 집계된 거래 버튼의 스크린샷.

기장된 명세서의 경우 기장된 명세서 페이지에서 집계된 거래를 볼 수 있습니다. 작업 창에서 문의를 선택한 다음 집계된 거래를 선택합니다.

게시된 문에 대한 집계된 트랜잭션 명령의 스크린샷

집계된 거래의 판매 주문 세부 정보 빠른 탭에는 다음 정보가 표시됩니다.

  • 레코드 ID – 집계된 거래의 ID입니다.
  • 명세서 번호 – 집계된 거래가 속한 명세서입니다.
  • 날짜 – 집계된 거래가 생성된 날짜입니다.
  • 판매 ID – 집계된 거래에서 판매 주문이 생성되면 판매 주문 ID입니다. 이 필드가 비어 있으면 해당 판매 주문이 만들어지지 않습니다.
  • 집계된 라인의 수 – 집계된 거래 및 판매 주문의 총 라인 수입니다.
  • 상태 – 집계된 거래의 마지막 상태입니다.
  • 송장 ID – 집계된 거래에 대한 판매 주문이 송장으로 발행될 때 판매 송장 ID입니다. 이 필드가 비어 있으면 판매 주문에 대한 청구서가 게시되지 않습니다.
  • 오류 코드 – 집계가 오류 상태인 경우 이 필드가 설정됩니다.
  • 오류 메시지 – 집계가 오류 상태인 경우 이 필드가 설정됩니다. 프로세스 실패의 원인에 대한 세부 정보를 보여줍니다. 오류 코드의 정보를 사용하여 문제를 해결한 다음 프로세스를 수동으로 다시 시작할 수 있습니다. 해결 유형에 따라 집계된 판매액을 삭제하고 새 명세서에서 처리해야 할 수 있습니다.

집계된 트랜잭션의 판매 주문 세부 정보 FastTab에 있는 필드의 스크린샷.

집계된 트랜잭션의 트랜잭션 세부 정보 FastTab은 프로세스가 집계된 트랜잭션으로 끌어오는 모든 트랜잭션을 보여 줍니다. 집계된 트랜잭션의 집계된 라인은 트랜잭션에서 집계된 모든 레코드를 표시합니다. 집계된 라인에는 항목, 변형 상품, 수량, 가격, 순액, 단위 및 창고와 같은 세부 정보도 표시됩니다. 집계된 각 줄은 하나의 판매 주문 라인에 해당합니다.

집계된 거래의 거래 세부 정보 FastTab의 스크린샷.

경우에 따라 집계된 트랜잭션이 통합 판매 주문을 게시하지 못합니다. 이러한 상황에서 오류 코드는 문 상태와 연결됩니다. 오류가 있는 집계된 트랜잭션만 보려면 확인란을 선택하여 집계된 트랜잭션 보기에서 오류만 표시 필터를 사용하도록 설정합니다. 이 필터를 사용하면 해결이 필요한 오류가 있는 집계된 거래로 결과를 제한할 수 있습니다. 이러한 오류를 수정하는 방법에 대한 정보는 온라인 주문 및 비동기 고객 주문 거래 편집 및 감사를 참조하십시오.

집계된 트랜잭션 보기에서 오류만 표시 필터에 대한 확인란의 스크린샷

집계된 거래 페이지에서 특정 집계된 거래에 대한 XML을 다운로드하려면 집계 데이터 내보내기를 선택할 수 있습니다. 모든 XML 포맷터에서 XML을 검토하여 판매 주문 생성 및 기장과 관련된 실제 데이터 세부 정보를 볼 수 있습니다. 집계된 트랜잭션에 대한 XML을 다운로드하는 기능은 게시된 문에 사용할 수 없습니다.

집계된 트랜잭션 페이지의 집계 데이터 내보내기 단추 스크린샷

판매 주문 또는 판매 주문을 지원하는 데이터의 데이터를 수정하여 오류를 해결할 수 없는 경우 고객 주문 삭제 단추를 사용합니다. 주문을 삭제하려면 실패한 집계 거래를 선택한 다음 고객 주문 삭제를 선택합니다. 시스템은 집계된 트랜잭션과 해당 판매 주문을 모두 삭제합니다. 이제 편집 및 감사 기능을 사용하여 트랜잭션을 검토할 수 있습니다. 또는 새 명령문을 통해 다시 처리할 수 있습니다. 모든 오류를 해결한 후에는 관련 문에 대한 post 문 함수를 실행하여 문 게시를 다시 시작할 수 있습니다.

집계된 트랜잭션 보기의 고객 주문 삭제 단추 스크린샷

집계된 트랜잭션 보기는 다음과 같은 이점을 제공합니다.

  • 판매 주문 생성 중에 실패한 집계된 트랜잭션과 청구서 발행 중에 실패한 판매 주문을 확인할 수 있습니다.
  • 트랜잭션을 집계하는 방법을 확인할 수 있습니다.
  • 트랜잭션에서 판매 주문, 판매 송장에 이르기까지 전체 감사 내역이 있습니다. 이 감사 내역은 레거시 명세서 기장 기능에서 사용할 수 없었습니다.
  • 집계된 XML 파일을 사용하면 판매 주문을 만들고 호출하는 동안 문제를 더 쉽게 식별할 수 있습니다.

비고

시스템에서 트랜잭션을 집계할 때 상위 직원 판매 보고서에 는 더 이상 트랜잭션에 할당된 직원 구성원이 포함되어 있지 않습니다. 상위 직원 판매 보고서에는 모든 트랜잭션이 표시되지 않습니다. 집계된 트랜잭션에는 상위 직원 판매 보고서를 사용하지 마세요.

분개장 바우처

문서의 실행 세부 정보 그룹에 있는 저널 바우처 버튼은 시스템에서 명세서에 대해 생성하는 모든 다양한 바우처 거래 내역을 보여줍니다. 이러한 거래는 할인, 소득 및 경비 계정, 기프트 카드 및 기타 유사한 항목과 관련이 있습니다.

현재 프로그램은 게시된 명세서에 대해서만 이 데이터를 표시합니다.

지급 분개장

실행 세부 정보 그룹의 결제 저널 단추는 시스템에서 명세서에 대해 생성하는 모든 다양한 결제 저널을 보여 줍니다.

현재 프로그램은 게시된 명세서에 대해서만 이 데이터를 표시합니다.

다른 개선 사항

개발 팀은 명령문 게시 기능을 다른 백 엔드로 개선했습니다. 예시는 다음과 같습니다.

  • 집계 프로세스는 직원, 터미널 및 교대 근무 엔터티를 고려하지 않습니다. 프로세스에는 집계 매개 변수가 적기 때문에 더 적은 판매 주문 라인을 처리합니다.
  • 추가 확장 테이블을 도입하고 트랜잭션 테이블에 대한 업데이트 작업 대신 삽입 작업을 수행함으로써 트랜잭션 테이블에서 교착 상태 발생이 감소됩니다.
  • 실행 중인 일괄 처리 작업의 수는 매개 변수화되고 제한됩니다. 따라서 이 숫자를 고객 환경에 맞게 미세 조정할 수 있습니다. 레거시 명세서 기장 기능에서는 동시에 일괄 처리 작업을 무제한으로 생성했습니다. 그 결과 일괄 처리 서버에서 관리할 수 없는 로드, 오버헤드 및 병목 현상이 발생했습니다.
  • 명세서는 거래 수가 가장 많은 명세서를 우선 순위로 처리를 위해 효율적으로 큐에 대기됩니다.
  • 일괄 처리 모드에서 실행되는 Calculate 문 및Post 문과 같은 일괄 처리 프로세스는 일괄 처리 모드에서만 실행됩니다. 레거시 문 게시 기능에서 사용자는 다중 스레드된 일괄 처리 프로세스와 달리 단일 스레드 작업인 대화형 모드에서 이러한 일괄 처리 프로세스를 실행하도록 선택할 수 있습니다.
  • 레거시 명세서 기장 기능에서 일괄 처리 작업이 실패하면 전체 일괄 처리 작업이 오류 상태가 됩니다. 향상된 기능에서 일괄 처리 작업 실패는 다른 일괄 처리 작업이 성공적으로 완료된 경우 일괄 처리 작업을 오류 상태로 전환하지 않습니다. 명세서 페이지를 사용하여 오류로 인해 게시되지 않은 명세서를 볼 수 있는 배치 실행에 대한 게시 상태를 평가해야 합니다.
  • 레거시 명세서 기장 기능에서 명세서 실패가 처음 발생하면 전체 일괄 처리가 실패합니다. 나머지 명세서는 처리되지 않습니다. 개선된 기능에서 일괄 처리 프로세스는 일부 명세서가 실패하더라도 모든 명세서를 계속 처리합니다. 한 가지 이점은 사용자가 오류가 있는 명세서의 정확한 수를 파악할 수 있다는 것입니다. 따라서 사용자는 모든 문이 게시될 때까지 오류를 수정하고 사후 문 프로세스를 실행하는 연속 루프에 갇히지 않아도 됩니다.

명세서 기장 프로세스에 대한 일반 지침

  • 문 게시 프로세스를 일괄 처리로 실행합니다. 일괄 처리 실행은 멀티스레딩을 위해 일괄 처리 프레임워크의 강력을 활용합니다. 일반적으로 명세서 기장에서 발생하는 대량의 트랜잭션을 처리하려면 다중 스레딩이 필요합니다.

  • 항목 모델 그룹에서 부정적인 물리적 인벤토리를 켜면 원활한 게시 환경을 얻을 수 있습니다. 일부 시나리오에서는 부정적인 물리적 인벤토리가 없는 한 부정 문을 게시할 수 없습니다. 예를 들어 인벤토리에 항목의 단위가 하나뿐이고 항목에 대한 판매 트랜잭션과 반환 트랜잭션이 있는 경우 음의 인벤토리가 설정되지 않은 경우에도 트랜잭션을 게시할 수 있어야 합니다. 그러나 전표 게시 프로세스는 판매 트랜잭션과 반품 트랜잭션을 단일 고객 주문으로 불러오기 때문에, 판매 행이 먼저 게시되고 그 후에 반품 행이 게시된다는 보장은 없습니다. 따라서 오류가 발생할 수 있습니다. 이 시나리오에서 부정적인 인벤토리를 켜면 트랜잭션 게시가 부정적인 영향을 받지 않으며 시스템이 인벤토리를 올바르게 반영합니다.

  • 계산서 명세서를 계산하고 기장할 때 집계를 사용합니다. 따라서 다음 매개 변수를 설정합니다.

    • 소매 및 상거래>Headquarters 설정>매개 변수>상거래 매개 변수로 이동합니다. 그런 다음 기장 탭의 재고 업데이트 빠른탭에서 세부 수준 필드에서 요약을 선택합니다.
    • 소매 및 상거래>Headquarters 설정>매개 변수>상거래 매개 변수로 이동합니다. 그런 다음 기장 탭의 집계 빠른 탭에서 바우처 트랜잭션 옵션을 로 설정합니다.