11.12.10

SAP Note 12522 - Change partner in order -> Tax calculation

Symptom:

When processing partners in the order, the following errors occur:

    1. When you change the address of the ship-to party in the order, taxes
    are only redetermined for the first change. If you change the address
    again in the current transaction, the taxes are not redetermined.
    2. Taxes are redetermined for any changed address data for the ship-to
    party and not just for changes to tax-relevant address data
    (country, region etc.).
    3. Taxes are redetermined for changed address data for the payer,
    although they only need to be updated when the payer number itself is
    changed.

The errors are corrected as of Release 2.2I or 3.0E. This means they
only occur up to Release 2.2H or in Release 3.0A - 3.0D.
After implementing this note, you also need to apply note 64119 (tax
determination when changing partner om item level).

Cause and prerequisites

Missing clear in the corresponding transfer flag (SAPMV45A).
Error in SAPDV02P

Solution
    1. Add the following lines to program MV45AF0F:
    ...
    FORM FCODE_KPAR USING H185F STRUCTURE T185F
    H185 STRUCTURE T185
    H185V STRUCTURE T185V.
    ...
    ...
    MV45A_DATALOSS = R185D-DATALOSS.
    CLEAR: RV02P-WEUPD, RV02P-RGUPD, RV02P-SBUPD. "<-- new line
    MOVE VBAK-VBELN TO RV02P-VBELN.
    ...
    ...

    FORM FCODE_PPAR USING H185F STRUCTURE T185F
    H185 STRUCTURE T185
    H185V STRUCTURE T185V.
    ...
    ...
    T185 = H185.
    T185F = H185F.
    T185V = H185V.
    CLEAR: RV02P-WEUPD, RV02P-RGUPD, RV02P-SBUPD. "<-- new line
    IF TVAK-VBTYP ...
    ...
    ...
    2. Change program DV02PTOP as follows:

    program sapdv02p message-id vp.
    include vbpadata.
    ...
    data: end of partnertrace.
    data: rgupd(1) type c. "<-- new line
    data: weupd(1) type c. "<-- new line
    data: text1(30) type c.
    ...
    3. Change program DV02PFPA as follows:
    ...
    form partner_aendern.
    data: save_kunnr like vbpa-kunnr. "<-- new line
    save_kunnr = xvbpa-kunnr. "<-- new line
    rgupd = rv02p-rgupd. "<-- new line
    weupd = rv02p-weupd. "<-- new line
    move-corresponding vbpa to xvbpa.
    ...
    perform xvbpa_yvbpa_update.
    if save_kunnr = xvbpa-kunnr. "<-- new line
    if rgupd is initial. "<-- new line
    clear rv02p-rgupd. "<-- new line
    endif. "<-- new line
    if weupd is initial. "<-- new line
    clear rv02p-weupd. "<-- new line
    endif. "<-- new line
    endif. "<-- new line
    if rv02p-posnr ...
    ...
    endform.
    4. Change program DV02PFPM / Form PARTNER_DETAIL as follows:
      a) Changes up to and including 2.2F:

      FORM PARTNER_DETAIL.

      IF VBADR NE *VBADR OR ( FCODE = 'MANU' AND D0644MANAD = ' ' ).
      * Verprobung der Anschrift
      PERFORM POSTAL_CODE_CHECK.
      rgupd = rv02p-rgupd. "<-- new line
      weupd = rv02p-weupd. "<-- new line

      * Bei Warenempfängern:
      * Bei Änderung von Land oder Zone: Message: Bitte Route prüfen
      IF VBPA-PARVW = 'WE'.
      ...
      ENDIF.
      ...
      perform xvbadr_yvbadr_update.

      >>>>>>>>>>>>>> Start of the new lines <<<<<< <<<<<<<<<<<<<<<<<<

      if vbpa-parvw = 'WE'.
      IF weupd is initial
      and vbadr-land1 = *vbadr-land1
      and vbadr-lzone = *vbadr-lzone
      and vbadr-regio = *vbadr-regio
      and vbadr-cityc = *vbadr-cityc
      and vbadr-counc = *vbadr-counc.
      clear rv02p-weupd.
      else.
      rv02p-weupd = 'X'.
      endif.
      endif.
      if vbpa-parvw = 'RG'
      and rgupd is initial.
      clear rv02p-rgupd.
      endif.

      >>>>>>>>>>>>>> End of the new lines <<<<<<<<<<<<<<<<<<<<<<<<<<<

      if ( kuagv-xcpdk = 'X' ...
      ...
      endform.
      ...
b) Changes from 2.2G:

FORM PARTNER_DETAIL.

IF VBADR NE *VBADR OR ( FCODE = 'MANU' AND D0644MANAD = ' ' ).
* Verprobung der Anschrift
PERFORM POSTAL_CODE_CHECK.
IF TXJCD NE SPACE. VBADR-TXJCD = TXJCD. RV02P-WEUPD = 'X'.
ENDIF.
rgupd = rv02p-rgupd. "<-- new line
weupd = rv02p-weupd. "<-- new line

* Bei Warenempfängern:
* Bei Änderung von Land oder Zone: Message: Bitte Route prüfen
IF VBPA-PARVW = 'WE'.
...
ENDIF.
...
perform xvbadr_yvbadr_update.

>>>>>>>>>>>>>> Start of the new lines <<<<<< <<<<<<<<<<<<<<<<<<

if vbpa-parvw = 'WE'.
IF weupd is initial
and vbadr-land1 = *vbadr-land1
and vbadr-lzone = *vbadr-lzone
and vbadr-regio = *vbadr-regio
and vbadr-cityc = *vbadr-cityc
and vbadr-counc = *vbadr-counc
and vbadr-txjcd = *vbadr-txjcd.
clear rv02p-weupd.
else.
rv02p-weupd = 'X'.
endif.
endif.
if vbpa-parvw = 'RG'
and rgupd is initial.
clear rv02p-rgupd.
endif.

>>>>>>>>>>>>>> End of the new lines <<<<<<<<<<<<<<<<<<<<<<<<<<<

if ( kuagv-xcpdk = 'X' ...
...
endform.

Additional key words

SAPDV02P Partner addresses

No comments:

Post a Comment