17.3.11

SAP Note 25042 - Planned order: Scheduling via master recipe

Symptom:

Capacity requirements are not written to the database if planned orders are scheduled via master recipes.

Cause and prerequisites
Solution
Correction in LCOSDU18, LCXORU02.

16.3.11

SAP Note 25036 - Log: Error when translating into other units

Symptom:

You get the message 'Error in translating into other units of measure' in the scheduling log although all the units are defined.

Cause and prerequisites

The unit Day is not maintained.

Solution
Maintain a unit of measurement for Day or make a correction to LCXOTF00.

Additional key words

Scheduling, units of measurement

SAPNote 25031 - MMIM: Acct.assign. when changing reservation item

Symptom:

If you change a reservation by adding new items, the account assignment is not copied from the header of reservation into the items.

Cause and prerequisites

Program error.

Solution
Please change structure RESBN in the ABAP/4 Dictionary (transaction SE11). Here, include the account assignment fields from structure RKPF with the corresponding data elements.

Field name Data element ---------------------------
AUFNR AUFNR
KDAUF KDAUF
KDPOS KDPOS
KDEIN KDEIN
EBELN EBELN
EBELP EBELP
PS_PSP_PNR PS_PSP_PNR
PAOBJNR RKEOBJNR
NPLNR NPLNR
UFPL CO_AUFPL
APLZL CIM_COUNT
FIPOS FIPOS
ANLN1 ANLN1
ANLN2 ANLN2
VPTNR JV_PART
KSTRG KSTRG
IMKEY IMKEY

Please activate the structure after you have made the changes.

SAP Note 25026 - VF04: Selection by payer

Symptom:

In the "Maintain Billing Due List" program (VF04), it is not currently possible to select by payer.

Other terms

SAPMV60S, SE11, SE51

Reason and Prerequisites

Up to now, the required functions have not been provided by SAP.
The modifications can be used as of Release 3.0.

Take the following restrictions into account for the following modification proposals:

  • A selection by payer works with documents but not document items.
  • If several sales orders with different payers are combined in one delivery, the delivery header contains the payer of the first sales order as payer. A billing index is not created for the different payers of the combined sales orders.
Solution
Only a modification solves this problem. Contact
Consulting for this purpose. See also the attached Note 170183.

The source code corrections described below provide a possible solution.

1.) Enhance structure VBCO7 <-- Only in releases lower than 4.0*
2.) Enhance SAPMV60S: screen 2100 <-- Only in releases lower than 4.0*
3.) Enhance SAPLV05H: LV05HTOP <-- Only in releases lower than 4.0*
4.) Enhance SAPLV05H: LV05HFIN <-- Only in releases lower than 4.0*
5.) Enhance SAPLV05H: LV05HFDL <-- Only in releases lower than 4.0*
6.) Enhance SAPLV05I: LV05IEXIT
7.) Enhance the partner determination procedures for deliveries in Customizing
8.) Rebuild the billing index

1.) Enhance structure VBCO7 (transaction SE11)
MANDT MANDT CLNT 3 T000
: : : : :
ALLEI ALLEI CHAR 1
SORTKRI SORTKRI CHAR 20 <-- new

2.) :Enhance screen SAPMV60S:2100 (transaction SE51, element list)
:
VBCO7-LLAND 8 2 20 3
VBCO7-LLAND 8 23 3 CHAR X
T005T-LANDX 8 43 15 CHAR X
VBCO7-SORTKRI 9 2 20 0 X <-- new
VBCO7-SORTKRI 9 23 10 CHAR X <-- new

Here, the frame is to be increased downwards by one line.
You should change the description "Sort criterion" of the field VBCO7-SORTKRI to "Payer".

3.) Enhance SAPLV05H: LV05HTOP
:
DATA: FKART_HIGH LIKE VKDFS-FKART.
DATA: LLAND_HIGH LIKE VKDFS-LLAND.
DATA: SORTKRI_HIGH LIKE VKDFS-SORTKRI. <-- new
DATA: VBTYP_HIGH LIKE VKDFS-VBTYP.
:

4.) Enhance SAPLV05H: LV05HFIN
:
*---------------------------------------------------------------------*
* FORM VKDFS_INIT *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM VKDFS_INIT.
:
IF VBCO7-KUNNR CO '0'.
KUNNR_HIGH = CHAR_HIGH(10).
ELSE.
KUNNR_HIGH = VBCO7-KUNNR.
ENDIF.

IF VBCO7-SORTKRI CO '0'. <-- new
SORTKRI_HIGH = CHAR_HIGH(20). <-- new
ELSE. <-- new
SORTKRI_HIGH = VBCO7-SORTKRI. <-- new
ENDIF. <-- new
:

5.) Enhance SAPLV05H: LV05HFDL

*---------------------------------------------------------------------*
* FORM READ_VKDFS_VKDFI_VF_01 *
*---------------------------------------------------------------------*
* Database access billing trigger *
*---------------------------------------------------------------------*
FORM READ_VKDFS_VKDFI_VF_01.
:
SELECT *
INTO VKDFS
FROM VKDFS
WHERE ( FKTYP IN (VBCO7-ALLEF,VBCO7-ALLEL,VBCO7-ALLEA,
VBCO7-ALLEI,VBCO7-ALLEB) )
:
AND (LLAND BETWEEN VBCO7-LLAND AND LLAND_HIGH)
AND (VBELN BETWEEN VBCO7-VBELN AND VBCO7-VBELN_BIS)
AND (SORTKRI BETWEEN VBCO7-SORTKRI AND SORTKRI_HIGH) <-- new
AND (VBTYP BETWEEN VBCO7-VBTYP AND VBTYP_HIGH).
PERFORM MOVE_VKDFS_TO_LVKDFI.
APPEND LVKDFI.
ENDSELECT.
ENDFORM.

6.) Enhance SAPLV05I: LV05IEXIT
Implement the attached corrections.

7.) Enhance the partner determination procedures for deliveries in Customizing
To ensure that delivery-related documents can also be selected when selecting the billing due list according to payer, you must add the partner PY to the corresponding partner role in Customizing for the delivery type to be used. This partner must be flagged as a partner that cannot be changed.

8.) Rebuild the billing index.
To rebuild the billing index for existing documents, you must start the program RVV05IVB.

SAP Note 25024 - Runtime of period closing program

Symptom:

The period closing program has an extremely long runtime or terminates after several hours.
Implementing this note can considerably reduce the runtime of the period closing program if only one client exists in the R/3 System or if almost all materials are contained in a single client.
The more company codes a company has, the less the runtime will improve with the installation of this note. If you are using many company codes, we recommend that you implement Note 24948 instead.
This note replaces Note 16215.
If you have performance problems with
database systems INFORMIX, ADABAS, SQL server or DB2/600, you should apply Note 25024 and not Note 24948.

Cause and prerequisites

A large number of material master records exist at valuation area level or storage location level. (Technically speaking, tables MBEW and/or MARD as well as table MCHB contain a very large number of entries if you use batches.)

Solution
For Release 2.2:
================
The performance of the period closing program on ORACLE and INFORMIX database systems has been improved as of Release 2.2H.
For ADABAS, the enhanced version for all 2.2 Releases can be picked up from sapserv3 (see below for description).
For SQL server, DB2/600, and AS400 customers, no period closing program with improved performance is available for Release 2.2.
If you are using Release 2.2H or a later release on either INFORMIX or ORACLE, you already have a system version with improved performance. In this case, all you have to do is replace the command
SWITCH_ON_TUNE(1) VALUE ' '. "Performance-Tuning-Flag
with the command
SWITCH_ON_TUNE(1) VALUE 'X'. "Performance-Tuning-Flag
in Include program MM13QTOP.

In addition, use Transaction SE11 to check whether tables T001W and T001K are transparent tables. If required, change both tables to transparent tables. Otherwise the enhanced version does not become active.

If you are using an earlier release than 2.2H (or the ADABAS database system), you can import the 2.2H Version of the period closing program to your system as described in Note 13719 and then carry out the above steps. The objects concerned are stored on SAPSERV3 or SAPSERV4 in path /general/R3server/abap/note.25024. Import transport request '016491' (cofile K016491.P22 and datafile R016491.P22) from this directory.

Do not change Include MM13QTOP before you have installed the system version with improved performance because any changes you have made would otherwise be reversed.

For Release 3.0/3.1/4.0
=======================
In a Release >4.0A, you no longer need to import transports from SAPSERV3 or SAPSERV4. These transports are intended for a Release < 4.0A only. They cause syntax errors.

For customers using the INFORMIX or ORACLE database, an improved version of the system is available as of Release 3.0D.
For customers using ADABAS, SQL server, DB2/600, or AS400, an improved version of the system is available as of Release 3.1I.

In these cases, you only have to replace the command
SWITCH_ON_TUNE(1) VALUE ' '. "Performance-Tuning-Flag
with the command
SWITCH_ON_TUNE(1) VALUE 'X'. "Performance-Tuning-Flag
in Include program MM13QTOP.

Caution:
If you do not yet have an improved version of the system for the database system you are using, import the improved version as described in Note 13719.

The objects concerned are stored on SAPSERV3 or SAPSERV4 in path /general/R3server/abap/note.0025024. Import transport request '163933' (cofile K163933.P30 and datafile R163933.P30) from this directory.

Do not change Include MM13QTOP before you have installed the system version with improved performance because any changes you have made would otherwise be reversed.

For ORACLE customers, a new feature 'hash join' is available as of ORACLE Version 7.3.3.3. Up to now, this feature has been implemented in three customer systems for MMPV and has highly improved the performance.
If the material master is very large (1 million, 2 million or more rows in MBEW, MARD), it is worth implementing 'hash join'. As a result, sorts are no longer executed on ORACLE side (no PSAPTEMP anymore!).

A transport for this will be available in the near future.

Until then, simply replace the ORACLE optimizer hint
/*+ FULL(MBEW) */
with
/*+ FULL(MBEW) USE_HASH(MBEW) */
in report MM13QFSQ

The same applies to table MARD:
/*+ FULL(MARD) */
is replaced by:
/*+ FULL(MARD) USE_HASH(MARD) */

The same applies to table MCHB:
/*+ FULL(MCHB) */
is replaced by:
/*+ FULL(MCHB) USE_HASH(MCHB) */

If you are using DB2/390 or DB2/400, proceed as follows:
1) If your release is earlier than 3.1I, import transport request '163933' from SAPXERV3 bzw. SAPSERV4 as desribed above.
2) Replace in Include program MM13QTOP the command
SWITCH_ON_TUNE(1) VALUE ' '. "Performance-Tuning-Flag
by the command
SWITCH_ON_TUNE(1) VALUE 'X'. "Performance-Tuning-Flag
3) Add two lines in Include program MM13QFSQ:
.....
FORM DB_SPERRE.
IF SY-DBSYS(3) = 'INF' OR
SY-DBSYS(3) = 'SQL' OR
SY-DBSYS(3) = 'ADA' OR
SY-DBSYS(3) = 'DB2' OR "<------ Insert
SY-DBSYS(3) = 'DB4' OR "<------ Insert
SY-DBSYS(3) = 'DB6' OR
.....
4) Add two lines in Include program MM13QF00:
Dependent from your release you will not find at the beginning
of Form ARBEITEN the lines below which are not marked with 'Insert'
In this case you don't have to enter the two lines which are
marked with 'Insert'

.....
FORM ARBEITEN.

* kugl, 30.12.96. switch of tuning on only for database platforms
* ORACLE, INFORMIX, ADABAS (ADA, SQL) and SQL Server (MSS)
* all other platforms should only be used in case of emergency

IF SY-DBSYS(3) <> 'ORA' AND SY-DBSYS(3) <> 'INF' AND
SY-DBSYS(3) <> 'DB2' AND "<----- Insert
SY-DBSYS(3) <> 'DB4' AND "<----- Insert
SY-DBSYS(3) <> 'SQL' AND SY-DBSYS(3) <> 'ADA' AND
.....

5) If you are using DB2/400, implement the
corrections described down beloweith the heading: 'Special
corrections for DB2/400'.


For Releases 4.5A/4.5B/4.6A
==========================
Please also consider note 193646, if you use Release 4.5B or 4.6A.

In these releases, the note is only still relevant for the year change, since in those period changes that are not year changes at the same time, no more material master tables can be converted.

In the above-mentioned releases, replace command
SWITCH_ON_TUNE(1) VALUE ' '. "Performance-Tuning-Flag
with command
SWITCH_ON_TUNE(1) VALUE 'X'. "Performance-Tuning-Flag
im Include program MM13QTOP.

In addition, add 14 lines in program MM13QFSQ at the end of FORM routine INVENTUR_SPERREN:
. . . . . . . . .
MOVE BUKRS_TAB-BUKRS TO AUSNAHME_TAB-BUKRS.
APPEND AUSNAHME_TAB.
ENDIF.

IF SWITCH_ON_TUNE NE SPACE. "<--- Insert
IF SY-DBSYS(3) = 'INF' OR "<--- Insert
SY-DBSYS(3) = 'SQL' OR "<--- Insert
SY-DBSYS(3) = 'ADA' OR "<--- Insert
SY-DBSYS(3) = 'DB2' OR "<--- Insert
SY-DBSYS(3) = 'DB4' OR "<--- Insert
SY-DBSYS(3) = 'DB6' OR "<--- Insert
SY-DBSYS(3) = 'MSS' . "<--- Insert
IF MBEW_LOCK = SPACE. "<--- Insert
MBEW_LOCK = MARC_LOCK = 'X'. "<--- Insert
PERFORM SPERREN. "<--- Insert
ENDIF. "<--- Insert
ENDIF. "<--- Insert
ENDIF. "<--- Insert

ENDFORM.

In addition, in program MM13QFSQ in FORM routine SPERREN two lines are to be deleted und 4 lines to be added:
a) in Release 4.5A:

FORM SPERREN.

CLEAR FEHLERFLAG.
CLEAR: MBEW_LOCK, MARC_LOCK.

* IF RM03Q-KZINV NE SPACE. "<--- Delete
IF RM03Q-KZINV NE SPACE "<--- Insert
OR MARC_LOCK NE SPACE. "<--- Insert
* Nur noch bei Initialiserung sperren

. . . . . . . . .

* if t001k-mlbwa ne space or rm03q-kzinv ne space. "<--- Delete
if t001k-mlbwa ne space or rm03q-kzinv ne space "<--- Insert
or mbew_lock ne space. "<--- Insert
call function 'ENQUEUE_EMMBEWE'
exceptions
foreign_lock = 2
system_failure = 3.

if sy-subrc = 2.
. . . . . . . . .


b) in Release 4.5B or 4.6A

FORM SPERREN.

CLEAR FEHLERFLAG.
CLEAR: MBEW_LOCK, MARC_LOCK.

* IF RM03Q-KZINV NE SPACE. "<--- Delete
IF RM03Q-KZINV NE SPACE "<--- Insert
OR MARC_LOCK NE SPACE. "<--- Insert
* Nur noch bei Initialisierung sperren

. . . . . . . . .

*F T001K-MLBWA NE SPACE OR RM03Q-KZINV NE SPACE.
* IF RM03Q-KZINV NE SPACE. "<--- Delete
IF RM03Q-KZINV NE SPACE "<--- Insert
OR MBEW_LOCK NE SPACE. "<--- Insert
CALL FUNCTION 'ENQUEUE_EMMBEWE'
EXCEPTIONS
FOREIGN_LOCK = 2
SYSTEM_FAILURE = 3.
. . . . . . . . .

Finally, add a line in Release 4.5A in program MM13QFSQ in FORM routine DB_SPERRE:

form db_sperre.
if sy-dbsys(3) = 'INF' or
sy-dbsys(3) = 'SQL' or
sy-dbsys(3) = 'ADA' or
sy-dbsys(3) = 'DB2' or "<----- Insert
sy-dbsys(3) = 'DB6' or
sy-dbsys(3) = 'MSS' .
. . . . . . . . .


Special corrections for DB2/400 (for all releases as of Release .0)
============================================================
Delete one line and add two lines in the following FORM routines in program MM13QFSQ:
- FORM MARD_UPDATE_JW_DB2DB4
- FORM MCHB_UPDATE_JW_DB2DB4
- FORM MSKA_UPDATE_JW_DB2DB4
- FORM MSKU_UPDATE_JW_DB2DB4
- FORM MARD_UPDATE_DB2DB4 (only for Release 4.0)
- FORM MCHB_UPDATE_DB2DB4 (only for Release 4.0)
- FORM MSKA_UPDATE_DB2DB4 (only for Release 4.0)
- FORM MSKU_UPDATE_DB2DB4 (only for Release 4.0)
- FORM MSSA_UPDATE_DB2DB4 (only for Release 4.0)

Depending on the level of your Hot Package and what the source code looks like, implement either Correction A) or alternatively, Correction B) :
Correction A):
. . . . . .
AND WERKS IN ( SELECT WERKS FROM T001W WHERE BWKEY IN
( SELECT BWKEY FROM T001K WHERE BUKRS
* = :BUKRS_TAB-BUKRS ) ) <---- Delete
= :BUKRS_TAB-BUKRS GROUP BY BWKEY ) <---- Insert
GROUP BY WERKS ) <---- Insert
ENDEXEC.
. . . . . .

Correction B):
. . . . . .
AND WERKS IN ( SELECT WERKS FROM T001W
WHERE MANDT = :SY-MANDT AND BWKEY IN
( SELECT BWKEY FROM T001K
WHERE MANDT = :SY-MANDT AND
* BUKRS = :BUKRS_TAB-BUKRS ) ) <-- Delete
BUKRS = :BUKRS_TAB-BUKRS GROUP BY BWKEY ) <-- Insert
GROUP BY WERKS ) <-- Insert
ENDEXEC.
. . . . . .

Delete a line and add two in program MM13QFSQ in the following FORM routines:
- FORM MBEW_UPDATE_JW_DB2DB4 (only for Release 4.0)
- FORM MBEW_UPDATE_DB2DB4 (only for Release 4.0) Depending on the level of your Hot Package and what the source code looks like, implement either Correction A) or alternatively, Correction B):
Correction A):
. . . . . .
AND BWKEY IN ( SELECT BWKEY FROM T001K WHERE BUKRS
= :BUKRS_TAB-BUKRS ) <-- Delete
= :BUKRS_TAB-BUKRS GROUP BY BWKEY ) <-- Insert
ENDEXEC.
. . . . . .

Correction B):
. . . . . .
AND BWKEY IN ( SELECT BWKEY FROM T001K
WHERE MANDT = :SY-MANDT AND
* BUKRS = :BUKRS_TAB-BUKRS ) <-- Delete
BUKRS = :BUKRS_TAB-BUKRS GROUP BY BWKEY ) <-- Insert
ENDEXEC.
. . . . . .

Additional key words

Transaction MMPV, program RMMMPERI,
databases INFORMIX/ORACLE, INFTUNE, DBTUNE, ADATUNE, ORATUNE, PSAPTEMP
overflow

SAP Note 25023 - Data transfer: reset corrected consumption values

Symptom:

You use report RMMMBIM0 to create a batch input session with which you want to reset corrected consumption values for the material to zero. However, after processing the batch input session, the consumption values still have their old value.

Cause and prerequisites

When processing the batch input session, the program is no longer able to tell whether a No Data indicator or the value zero was also entered for the corrected consumption values since both values result in initialization of the corresponding screen fields.

Solution
You can correct the material master maintenance program such that the corrected consumption values are reset if zero is entered for them.
Caution: The corrected consumption values are also reset if the No Data indicator is transferred for them.
In program MM03MIPR, please insert the lines marked NEW in module VERBR_UEBERNEHMEN_BT and deactivate (mark with an asterisk) the lines marked DEL:

Additional key words

Transactions: MM01, MM02

SAP Note 25022 - Moving the Upgrade directory WINDOWS NT

Symptom:

Disk space under the Share SAPMNT is not sufficient for upgrading

Cause and prerequisites
Solution
Move the upgrade directory :
- Create a directory \USR\SAP\PUT on a disk drive with sufficient
free space
- Maintain the parameter DIR_PUT in your instance-specific profile
e.g. DIR_PUT=E:\usr\sap\put
- Restart your system
- Import the data for the Release upgrade into this directory and
start R3up from this newly created directory tree.

Additional key words

Please note:
UPGRADE DIRECTORY
If you create Ihr Upgrade directory \USR\SAP\PUT on another
disk drive as \\$(SAPGLOBALHOST)\SAPMNT\put, you must
maintain the profile parameter DIR_PUT.
After making the change in profile, restart your system.
TRANSPORT DIRECTORY
The transport directory can generally be moved under WINDOWS NT as
described in Note 13352.
However, a temporary transport directory \USR\SAP\TRANS is always
expected under the path \\$(SAPGLOBALHOST)\SAPMNT\TRANS for the
upgrade up to R/3 3.0D, under which any transport requests during
the upgrade can be stored.

SAP Note 25010 - Run-time error COMPUTE_FLOAT_ZERODIVIDE in SAPLAFAR

Symptom:

The run-time error COMPUTE_FLOAT_ZERODIVIDE occurs in program SAPLAFAR if the following conditions are met:

  • You are using a calculation key with the declining-balance method for Japan (T090-AFAMET 'J')
  • The termination results during old data takeover
  • There is no useful life defined in the asset class
Cause and prerequisites

Program error

Solution
Install the following correction in module LAFARF00. You can only carry out the syntax check in the main program SAPLAFAR.

Additional key words

AS91 SAPMA02S RAALTD01 Japan

SAP Note 25006 - Structuring the process instruction sheet

Symptom:

The heading 'Phase: XXXX / Process instruction number: YYYY' is not displayed in front of some phases in the process instruction sheet. The process instructions that belong to these phases are displayed directly after the last displayed process instruction of the previous phase.

Cause and prerequisites

The heading 'Phase: XXXX / Process instruction number: YYYY' is only created in front of process parameters (process instruction category 1).
If you do not define a process parameter for a phase, the respective process instructions are directly appended to the preceding phase.

Solution
The heading only serves for orientation purposes in the process instruction sheet.

SAP Note 25003 - Error total displayed as zero

Symptom:

If the tracking signal is exceeded, either by a standard forecast or an export forecast, this sets an exception message and the error total is reset to zero. For subsequent forecasts, the exception message is then no longer set first. For the case that the described situation occurs for the last (newest) historical value in the forecast, then you get the unpleasant side effect that the forecast error is displayed as zero although this can obviously not be the case. Therefore, in Release 3.0, the error total is no longer reset despite the reasons described above. If you also want this functionality in Releases 2.1 and 2.2, then carry out the following repair (modification !). If you would prefer the older variant in a 3.0 System then reverse the changes. In any case, the following routine can be found in Include LSPRGF00.

Cause and prerequisites
Solution
See the repairs in the program code.