QM: Transaction QA13 - Usage Decision
Good day.
In QA13, after entering the Inspection Lot, you will see the characteristics tab. In the said tab, there's a table control that has a "Specifications" column in the table control.
With these, I have two questions:
(1) I would like to know if there's a table-field that hold the value of the said field "Specifications"?
(2) If there's no available table-field that holds the said value, is there an FM / BAPI that retrieves the said value?
Thank you very much!
Glad we could help!
BTW: Some folks will reference the PLMO and PLMK tables to get the specs from the inspection plans. These should contain specs as well and in some cases will work fine.
The problem with using the plan specifications is that the specs might change. So what the spec was last month is not the spec this month. If your running reports where you want to see the current spec, then you probably want those tables. If your always using plan versions when making spec changes, you'll be able to get the right ones ok. But many, many companies don't use version control in their inspection plans.
By using the QAMV table your reporting the spec that was in force at the time of the inspection. If your spec changed, the values in QAMV will NOT change. This is one of the reasons SAP does not update existing specs when you make changes to a plan. It would require them to update records in the QAMV table for currently open inspection lots. (Which BTW shouldn't be to difficult of a program to write if someone wanted that capability).
So a lot of which tables you use depend on what type of report your planning on producing and what it is used for.
Craig
Similar Messages
-
PP - QM: Reversal of the usage decision
Hi Gurus,
We have completed Result Recording using QE51N transaction and Usage decision using QA11. It has posted a stock from QI to Unrestricted use. Now I want to take it back from Unrestricted use to QI. This needs reversal of usage decision (What I think).
Can you suggest me the proper way of performing the said transaction?
I will really appreciate your concern.
Thanks
ShivR/3 note no. 175842 14.12.2001 Page 1
Number 0175842
Version 0021 from 29.11.2001
Status Released for customer
Set by SAP AG on 03.12.2001
Language EN
Short text Inspection lot: Reversal of goods movements from UD
Administrator SAP AG
Component QM-IM-UD Inspection Lot Completion
Long text
Symptom
Goods movements, which were created from the transactions of the usage
decision, can no longer be reversed.
Additional key words
QA11, QA12, QA14, MBST, MF41
Inspection lot, usage decision, goods movements, reversal, material
document
Cause and preconditions
Presently, the function is not provided in the standard system.
Solution
The function is not provided in the standard system up to and including
Release 4.6C.
When you do this bear the following in mind:
1. Using the attached program corrections, stock transfer postings can
be reset for the usage decision.If it is possible to post this
document in the stock management, the inspection lot is also
corrected and the Quality Management Information System is if
necessary updated.After the reset has been successfully carried out,
the inspection lot, related to the stocks, has the status before the
first stock credit entry.The usage decision is not reset.If, after
the usage decision, further transfer postings are carried out in the
stock management which lead to the usage decision transfer postings
not being able to be reset due to missing availability, these
postings must be reversed first.
2. The goods movement is carried out in each case with the reversal
movement type (document neutral reversal).The original documents are
not reversed related to the document.This may lead to deviations in
the accounting caused by valuation.
3. Resetting postings for materials requiring serial numbers is not
supported.
4. With this correction program, you cannot reverse goods movements for
inpection lots for handling units (HU).
5. Batch status changes which have possibly been carried out are not
cancelled.
6. Batches which have been created in the usage decision during a
transfer posting are not deleted.The classification of these batches
is not changed either.
Page 2
7. Within the adjustment posting, in Release 4.x, the reference records
are also adjusted between the material document and inspection
lot.This can possibly lead to an incorrect description of the
reference type when displaying material documents for the inspection
lot.In Release 3.x, the reference records are deleted in order to
make sure that individual documents cannot be cancelled several
times.
8. The program does not contain any own authorization checks and should
be used with utmost care and ONLY after a successful test. The
program should ONLY be applied in exceptions and should not be part
of the standard procedure.
9. The logic implemented in the program for the generation of material
documents or for the update of inspection lot quantities and
inspection lot status should under no circumstances be be changed as
this might lead to inconsistent data. Since this is a program that is
not contained in the standard system, problems that are created as a
result of the program application can be dealt with as problems that
have arisen as a result of a customer modification.
To implement the program, proceed as follows:
1. Create an executable program and copy the attached source code.Then
maintain the text for selection parameter PRUEFLOS by transferring
the Dictionary text.
2. If you a use a Release < 4.6, you must create the function group
ZQMB. In this function group, you must create function module
'ZQMB_QAMB_CANCEL'. Flag the function module as an update function
module (Start immediately) and include table interface parameter
'I_QAMB_TAB' (type specification LIKE, reference structure QAMB).
Afterwards you must include exception 'ERROR_DURING_UPDATE' and
implement the attached source code.
3. Use Transaction OMJJ to enter further entries in level 'Allowed
transactions' (table T158B) for transaction code 'QA11' (Record Usage
Decision).The movement types for which these entries must be created
are derived from the system settings for the goods movements for the
usage decision (table TQ07M):The reversal movement type must be
determined for every movement type that is entered in table TQ07M
with the key VMENGE01 - VMENGE09 and the corresponding entry must be
included in the above-mentioned table.You can use table T156N for
determining the reversal movement type:You can determine the reversal
movement type by entering the movement type (BWART) and function code
(FCODE) ST (BWART_NEXT).For missing entries, the system generates
error M7096 'Goods movement not possible with mvmt type &'.
Source code corrections
Page 3
Valid releases
R/3 Standard 46C - 46D
46A - 46B
45A - 45B
40A - 40B
30F - 31I
Other components
QM-IM Quality Inspection
Reference to related notes
Number Short text
0033924 Cancelling usage decisions
0048815 Checking possible inconsistencies between MM and QM
Page 4
Assigned correction instructions
$$----
$$
$ Correction Instr. : 0120024545 0000111772 $
$ Software Component : SAP_APPL SAP Application $
*$----
$*
$ Validity : 40A SAPKH40A01 - SAPKH40A25 $
$ : 40B All Patches $
$ : 45A All Patches $
$ : 45B All Patches $
*$----
$*
$ Changes/Objects Not Contained in Standard SAP System $
$$----
$$
*& Object FUNC ZQMB_QAMB_CANCEL
*& Object Header FUGR ZQMB
*& FUNCTION ZQMB_QAMB_CANCEL
*>>>> START OF INSERTION <<<<
UPDATE QAMB FROM TABLE I_QAMB_TAB.
IF NOT SY-SUBRC IS INITIAL.
RAISE ERROR_DURING_UPDATE.
ENDIF.
*>>>> END OF INSERTION <<<<<<
*& Object REPS RQEVAC50
*& Object Header PROG RQEVAC50
*& REPORT RQEVAC50
*>>>> START OF INSERTION <<<<
REPORT RQEVAC50 MESSAGE-ID QA.
TYPES:
T_QAMB_TAB LIKE QAMB OCCURS 0,
T_MKPF_TAB LIKE MKPF OCCURS 0,
T_MSEG_TAB LIKE MSEG OCCURS 0.
PARAMETERS:
PRUEFLOS LIKE QALS-PRUEFLOS OBLIGATORY MEMORY ID QLS.
DATA:
G_MSGV1 LIKE SY-MSGV1,
G_QALS LIKE QALS,
G_QALS_LEISTE LIKE QALS,
G_QAMB_TAB TYPE T_QAMB_TAB,
G_QAMB_VB_TAB TYPE T_QAMB_TAB,
G_MKPF_TAB TYPE T_MKPF_TAB,
G_MSEG_TAB TYPE T_MSEG_TAB,
G_SUBRC LIKE SY-SUBRC.
START-OF-SELECTION.
Page 5
PERFORM ENQUEUE_QALS USING PRUEFLOS
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM READ_QALS USING PRUEFLOS
G_QALS
G_QALS_LEISTE
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID 'QA' TYPE 'S' NUMBER '102'
WITH PRUEFLOS.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM CHECK_LOT USING G_QALS
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
CASE G_SUBRC.
WHEN 128.
G_MSGV1 = 'Material & is serialized'.
REPLACE '&' WITH G_QALS-MATNR INTO G_MSGV1.
WHEN 64.
G_MSGV1 = 'Lot & is not stock relevant'.
WHEN 32.
G_MSGV1 = 'Lot &: No stock transferred'.
WHEN 16.
G_MSGV1 = 'Lot & is cancelled'.
WHEN 8.
G_MSGV1 = 'Lot & is archived'.
WHEN 4.
G_MSGV1 = 'Lot & is blocked'.
WHEN 2.
G_MSGV1 = 'Lot & is HU managed'.
ENDCASE.
REPLACE '&' WITH PRUEFLOS INTO G_MSGV1.
MESSAGE ID '00' TYPE 'S' NUMBER '208'
WITH G_MSGV1.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM READ_QAMB USING G_QALS
G_QAMB_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID 'QA' TYPE 'S' NUMBER '068'
WITH PRUEFLOS.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM READ_MKPF USING G_QAMB_TAB
G_MKPF_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
Page 6
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM CHECK_MKPF USING G_MKPF_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID 'QA' TYPE 'S' NUMBER '068'
WITH PRUEFLOS.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM READ_MSEG USING G_MKPF_TAB
G_MSEG_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM CHECK_MSEG USING G_MSEG_TAB
G_QAMB_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID 'QA' TYPE 'S' NUMBER '068'
WITH PRUEFLOS.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM CREATE_GOODS_MOVEMENT USING G_QALS
G_MSEG_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID 'QA' TYPE 'S' NUMBER '068'
WITH PRUEFLOS.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
PERFORM POST_GOODS_MOVEMENT.
PERFORM POST_DATA USING G_QALS
G_QALS_LEISTE
G_QAMB_TAB
G_QAMB_VB_TAB
G_SUBRC.
IF NOT G_SUBRC IS INITIAL.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ELSE.
COMMIT WORK AND WAIT.
G_MSGV1 = 'inspection lot &'.
REPLACE '&' WITH PRUEFLOS INTO G_MSGV1.
MESSAGE ID '00' TYPE 'S' NUMBER '368'
Page 7
WITH 'Stock posting reversed for ' G_MSGV1.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
Form ENQUEUE_QALS *
Los sperren *
FORM ENQUEUE_QALS USING P_PRUEFLOS LIKE QALS-PRUEFLOS
P_SUBRC LIKE SY-SUBRC.
CLEAR: P_SUBRC.
CALL FUNCTION 'ENQUEUE_EQQALS1'
EXPORTING
PRUEFLOS = P_PRUEFLOS
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
P_SUBRC = SY-SUBRC.
ENDFORM. " ENQUEUE_QALS
Form READ_QALS *
Prüflos lesen *
FORM READ_QALS USING P_PRUEFLOS LIKE QALS-PRUEFLOS
P_QALS LIKE QALS
P_QALS_LEISTE LIKE QALS
P_SUBRC LIKE SY-SUBRC.
CLEAR: P_SUBRC.
CALL FUNCTION 'QPSE_LOT_READ'
EXPORTING
I_PRUEFLOS = P_PRUEFLOS
I_RESET_LOT = 'X'
IMPORTING
E_QALS = P_QALS
EXCEPTIONS
NO_LOT = 1.
P_SUBRC = SY-SUBRC.
IF P_SUBRC IS INITIAL.
P_QALS_LEISTE = P_QALS.
ELSE.
CLEAR: P_QALS,
P_QALS_LEISTE.
ENDIF.
ENDFORM. " READ_QALS
Form CHECK_LOT *
Page 8
Prüflos prüfen *
FORM CHECK_LOT USING P_QALS LIKE QALS
P_SUBRC LIKE SY-SUBRC.
DATA:
L_STAT LIKE JSTAT,
L_STAT_TAB LIKE JSTAT OCCURS 0 WITH HEADER LINE.
P_SUBRC = 128.
*/Serialized Material
IF NOT P_QALS-SERNP IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 64.
ENDIF.
*/BERF
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
OBJNR = P_QALS-OBJNR
STATUS = 'I0203'
EXCEPTIONS
STATUS_NOT_ACTIVE = 2.
IF NOT SY-SUBRC IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 32.
ENDIF.
*/BTEI & BEND
CLEAR L_STAT. CLEAR L_STAT_TAB. REFRESH L_STAT_TAB.
L_STAT-STAT = 'I0219'. APPEND L_STAT TO L_STAT_TAB. "BTEI
L_STAT-STAT = 'I0220'. APPEND L_STAT TO L_STAT_TAB. "BEND
CALL FUNCTION 'STATUS_OBJECT_CHECK_MULTI'
EXPORTING
OBJNR = P_QALS-OBJNR
TABLES
STATUS_CHECK = L_STAT_TAB.
IF L_STAT_TAB[] IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 16.
ENDIF.
*/LSTO & LSTV
CLEAR L_STAT. CLEAR L_STAT_TAB. REFRESH L_STAT_TAB.
L_STAT-STAT = 'I0224'. APPEND L_STAT TO L_STAT_TAB. "LSTO
L_STAT-STAT = 'I0232'. APPEND L_STAT TO L_STAT_TAB. "LSTV
CALL FUNCTION 'STATUS_OBJECT_CHECK_MULTI'
EXPORTING
Page 9
OBJNR = P_QALS-OBJNR
TABLES
STATUS_CHECK = L_STAT_TAB.
IF NOT L_STAT_TAB[] IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 8.
ENDIF.
*/ARSP & ARCH & REO1 & REO2 & REO3
CLEAR L_STAT. CLEAR L_STAT_TAB. REFRESH L_STAT_TAB.
L_STAT-STAT = 'I0225'. APPEND L_STAT TO L_STAT_TAB. "ARSP
L_STAT-STAT = 'I0226'. APPEND L_STAT TO L_STAT_TAB. "ARCH
L_STAT-STAT = 'I0227'. APPEND L_STAT TO L_STAT_TAB. "REO3
L_STAT-STAT = 'I0228'. APPEND L_STAT TO L_STAT_TAB. "REO2
L_STAT-STAT = 'I0229'. APPEND L_STAT TO L_STAT_TAB. "REO1
CALL FUNCTION 'STATUS_OBJECT_CHECK_MULTI'
EXPORTING
OBJNR = P_QALS-OBJNR
TABLES
STATUS_CHECK = L_STAT_TAB.
IF NOT L_STAT_TAB[] IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 4.
ENDIF.
*/SPER
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
OBJNR = P_QALS-OBJNR
STATUS = 'I0043'
EXCEPTIONS
STATUS_NOT_ACTIVE = 2.
IF SY-SUBRC IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 2.
ENDIF.
*/HUM
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
OBJNR = P_QALS-OBJNR
STATUS = 'I0443'
EXCEPTIONS
STATUS_NOT_ACTIVE = 2.
IF SY-SUBRC IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 0.
ENDIF.
Page 10
ENDFORM. " CHECK_LOT
Form READ_QAMB *
QAMBs lesen *
FORM READ_QAMB USING P_QALS LIKE QALS
P_QAMB_TAB TYPE T_QAMB_TAB
P_SUBRC LIKE SY-SUBRC.
CLEAR: P_SUBRC.
SELECT * FROM QAMB INTO TABLE P_QAMB_TAB
WHERE PRUEFLOS = P_QALS-PRUEFLOS
AND TYP = '3'.
P_SUBRC = SY-SUBRC.
ENDFORM. " READ_QAMB
Form READ_MKPF *
Read material document header *
FORM READ_MKPF USING P_QAMB_TAB TYPE T_QAMB_TAB
P_MKPF_TAB TYPE T_MKPF_TAB
P_SUBRC LIKE SY-SUBRC.
DATA:
BEGIN OF L_MKPF_KEY_TAB OCCURS 0,
MBLNR LIKE MKPF-MBLNR,
MJAHR LIKE MKPF-MJAHR,
END OF L_MKPF_KEY_TAB.
DATA:
L_QAMB LIKE QAMB,
L_MKPF LIKE MKPF,
L_TRTYP LIKE T158-TRTYP VALUE 'A',
L_VGART LIKE T158-VGART VALUE 'WQ',
L_XEXIT LIKE QM00-QKZ.
P_SUBRC = 4.
LOOP AT P_QAMB_TAB INTO L_QAMB.
L_MKPF_KEY_TAB-MBLNR = L_QAMB-MBLNR.
L_MKPF_KEY_TAB-MJAHR = L_QAMB-MJAHR.
COLLECT L_MKPF_KEY_TAB.
ENDLOOP.
LOOP AT L_MKPF_KEY_TAB.
CALL FUNCTION 'ENQUEUE_EMMKPF'
EXPORTING
MBLNR = L_MKPF_KEY_TAB-MBLNR
MJAHR = L_MKPF_KEY_TAB-MJAHR
EXCEPTIONS
FOREIGN_LOCK = 1
Page 11
SYSTEM_FAILURE = 2
OTHERS = 3.
IF NOT SY-SUBRC IS INITIAL.
L_XEXIT = 'X'.
EXIT.
ENDIF.
CLEAR: L_MKPF.
CALL FUNCTION 'MB_READ_MATERIAL_HEADER'
EXPORTING
MBLNR = L_MKPF_KEY_TAB-MBLNR
MJAHR = L_MKPF_KEY_TAB-MJAHR
TRTYP = L_TRTYP
VGART = L_VGART
IMPORTING
KOPF = L_MKPF
EXCEPTIONS
ERROR_MESSAGE = 1.
IF NOT SY-SUBRC IS INITIAL.
L_XEXIT = 'X'.
EXIT.
ELSE.
APPEND L_MKPF TO P_MKPF_TAB.
ENDIF.
ENDLOOP.
IF NOT L_XEXIT IS INITIAL.
EXIT.
ELSE.
P_SUBRC = 0.
ENDIF.
ENDFORM. " READ_MKPF
Form READ_MSEG *
MSEGs lesen *
FORM READ_MSEG USING P_MKPF_TAB TYPE T_MKPF_TAB
P_MSEG_TAB TYPE T_MSEG_TAB
P_SUBRC LIKE SY-SUBRC.
DATA:
L_MKPF LIKE MKPF,
L_MSEG_TAB LIKE MSEG OCCURS 0 WITH HEADER LINE,
L_TRTYP LIKE T158-TRTYP VALUE 'A',
L_XEXIT LIKE QM00-QKZ.
P_SUBRC = 4.
LOOP AT P_MKPF_TAB INTO L_MKPF.
CLEAR: L_MSEG_TAB. REFRESH: L_MSEG_TAB.
CALL FUNCTION 'MB_READ_MATERIAL_POSITION'
EXPORTING
Page 12
MBLNR = L_MKPF-MBLNR
MJAHR = L_MKPF-MJAHR
TRTYP = L_TRTYP
*/ ZEILB = P_ZEILE
*/ ZEILE = P_ZEILE
TABLES
SEQTAB = L_MSEG_TAB
EXCEPTIONS
ERROR_MESSAGE = 1.
IF NOT SY-SUBRC IS INITIAL.
L_XEXIT = 'X'.
EXIT.
ELSE.
APPEND LINES OF L_MSEG_TAB TO P_MSEG_TAB.
ENDIF.
ENDLOOP.
IF NOT L_XEXIT IS INITIAL.
EXIT.
ELSE.
*/ XAuto-Zeilen und Chargenzustandsänderung werden gelöscht
DELETE P_MSEG_TAB WHERE XAUTO NE SPACE
OR BWART EQ '341'
OR BWART EQ '342'.
P_SUBRC = 0.
ENDIF.
ENDFORM. " READ_MSEG
Form CREATE_GOODS_MOVEMENT *
Warenbewegung anlegen *
FORM CREATE_GOODS_MOVEMENT USING P_QALS LIKE QALS
P_MSEG_TAB TYPE T_MSEG_TAB
P_SUBRC LIKE SY-SUBRC.
DATA:
L_LMENGEZUB LIKE QALS-LMENGEZUB,
L_LMENGEGEB LIKE QALS-LMENGEZUB,
L_MBQSS LIKE MBQSS,
L_IMKPF LIKE IMKPF,
L_IMSEG LIKE IMSEG,
L_IMSEG_TAB LIKE IMSEG OCCURS 1,
L_EMKPF LIKE EMKPF,
L_EMSEG LIKE EMSEG,
L_EMSEG_TAB LIKE EMSEG OCCURS 1,
L_MSEG LIKE MSEG,
L_MSEG_TAB LIKE MSEG OCCURS 1,
L_TCODE LIKE SY-TCODE VALUE 'QA11',
L_TABIX LIKE SY-TABIX VALUE 1,
L_XSTBW LIKE T156-XSTBW.
CLEAR: P_SUBRC.
Page 13
*/QAMB initialisieren
CALL FUNCTION 'QAMB_REFRESH_DATA'.
*/Kopf füllen
L_IMKPF-BLDAT = SY-DATLO.
L_IMKPF-BUDAT = SY-DATLO.
L_IMKPF-BKTXT = 'Cancellation of QM UD postings'.
*/Ursprüngliche zu buchende Menge merken + inkrementieren
L_LMENGEZUB = P_QALS-LMENGEZUB.
L_LMENGEGEB = P_QALS-LMENGE01
+ P_QALS-LMENGE02
+ P_QALS-LMENGE03
+ P_QALS-LMENGE04
+ P_QALS-LMENGE05
+ P_QALS-LMENGE06
+ P_QALS-LMENGE07
+ P_QALS-LMENGE08
+ P_QALS-LMENGE09.
*/Zeilen aufbauen
L_MSEG_TAB[] = P_MSEG_TAB[].
LOOP AT L_MSEG_TAB INTO L_MSEG.
MOVE-CORRESPONDING L_MSEG TO L_MBQSS.
MOVE-CORRESPONDING L_MBQSS TO L_IMSEG.
*/ Referenzbeleg übergeben, falls Bestellnummer gefüllt
IF NOT L_MSEG-EBELN IS INITIAL.
MOVE: L_MSEG-LFBNR TO L_IMSEG-LFBNR,
L_MSEG-LFBJA TO L_IMSEG-LFBJA,
L_MSEG-LFPOS TO L_IMSEG-LFPOS.
ENDIF.
MOVE L_MSEG-KDAUF TO L_IMSEG-KDAUF.
MOVE L_MSEG-KDPOS TO L_IMSEG-KDPOS.
MOVE L_MSEG-PS_PSP_PNR TO L_IMSEG-PS_PSP_PNR.
*/ Umlagerungsfelder setzen
MOVE:
L_MSEG-UMMAT TO L_IMSEG-UMMAT,
L_MSEG-UMWRK TO L_IMSEG-UMWRK,
L_MSEG-UMLGO TO L_IMSEG-UMLGO,
L_MSEG-UMCHA TO L_IMSEG-UMCHA.
*/ Storno-Beleg setzen
MOVE: L_MSEG-MJAHR TO L_IMSEG-SJAHR,
L_MSEG-MBLNR TO L_IMSEG-SMBLN,
L_MSEG-ZEILE TO L_IMSEG-SMBLP.
*/ Falsch gefüllte Felder initialisieren
CLEAR: L_IMSEG-MBLNR,
L_IMSEG-MENGE,
L_IMSEG-MEINS.
*/ Bewegungsart lesen
SELECT SINGLE XSTBW FROM T156 INTO L_XSTBW
WHERE BWART = L_IMSEG-BWART.
Page 14
IF NOT SY-SUBRC IS INITIAL.
P_SUBRC = 4.
EXIT.
ENDIF.
*/ Werk/Lagerort füllen
IF P_QALS-STAT11 IS INITIAL.
IF L_XSTBW IS INITIAL.
MOVE P_QALS-LAGORTVORG TO L_IMSEG-LGORT.
ELSE.
MOVE P_QALS-LAGORTVORG TO L_IMSEG-UMLGO.
ENDIF.
ENDIF.
IF L_XSTBW IS INITIAL.
MOVE P_QALS-WERKVORG TO L_IMSEG-WERKS.
ELSE.
MOVE P_QALS-WERKVORG TO L_IMSEG-UMWRK.
ENDIF.
*/ Zusätzliche Felder
MOVE P_QALS-MENGENEINH TO L_IMSEG-ERFME.
"MOVE P_GRUND TO L_IMSEG-GRUND.
"MOVE P_ELIKZ TO L_IMSEG-ELIKZ.
*/ Kennzeichen Storno-Buchung setzen
MOVE 'X' TO L_IMSEG-XSTOB.
MOVE P_QALS-PRUEFLOS TO L_IMSEG-QPLOS.
APPEND L_IMSEG TO L_IMSEG_TAB.
IF P_QALS-STAT11 IS INITIAL.
ADD L_IMSEG-ERFMG TO L_LMENGEZUB.
SUBTRACT L_IMSEG-ERFMG FROM L_LMENGEGEB.
ELSE.
IF L_IMSEG-KZBEW EQ SPACE
AND L_IMSEG-WERKS NE SPACE
AND L_IMSEG-LGORT NE SPACE
AND L_IMSEG-UMWRK NE SPACE
AND L_IMSEG-UMLGO NE SPACE
AND L_IMSEG-WERKS EQ L_IMSEG-UMWRK
AND L_IMSEG-UMLGO EQ L_IMSEG-UMLGO.
*/ Dummy Buchung bei WE-Sperrbestand & Stichprobe
ELSE.
ADD L_IMSEG-ERFMG TO L_LMENGEZUB.
SUBTRACT L_IMSEG-ERFMG FROM L_LMENGEGEB.
ENDIF.
ENDIF.
ENDLOOP.
IF NOT P_QALS-STAT11 IS INITIAL.
*/ Bei WE-Sperrbestand und Stichprobenbuchung Zeilen tauschen
DO.
READ TABLE L_IMSEG_TAB INDEX SY-INDEX INTO L_IMSEG.
IF SY-SUBRC IS INITIAL
AND L_IMSEG-KZBEW EQ SPACE
AND L_IMSEG-WERKS NE SPACE
AND L_IMSEG-LGORT NE SPACE
AND L_IMSEG-UMWRK NE SPACE
AND L_IMSEG-UMLGO NE SPACE
Page 15
AND L_IMSEG-WERKS EQ L_IMSEG-UMWRK
AND L_IMSEG-UMLGO EQ L_IMSEG-UMLGO.
IF SY-TABIX NE L_TABIX.
DELETE L_IMSEG_TAB INDEX SY-TABIX.
INSERT L_IMSEG INTO L_IMSEG_TAB INDEX L_TABIX.
L_TABIX = L_TABIX + 1.
ELSE.
L_TABIX = L_TABIX + 1.
CONTINUE.
ENDIF.
ELSEIF SY-SUBRC IS INITIAL.
CONTINUE.
ELSE.
EXIT. "from do
ENDIF.
ENDDO.
ENDIF.
*/QM deaktivieren
CALL FUNCTION 'QAAT_QM_ACTIVE_INACTIVE'
EXPORTING
AKTIV = SPACE.
*/Buchen
CALL FUNCTION 'MB_CREATE_GOODS_MOVEMENT'
EXPORTING
IMKPF = L_IMKPF
XALLP = 'X'
XALLR = 'X'
CTCOD = L_TCODE
XQMCL = ' '
IMPORTING
EMKPF = L_EMKPF
TABLES
IMSEG = L_IMSEG_TAB
EMSEG = L_EMSEG_TAB.
*/QM wieder aktivieren
CALL FUNCTION 'QAAT_QM_ACTIVE_INACTIVE'
EXPORTING
AKTIV = 'X'.
*/Buchung auswerten
IF L_EMKPF-SUBRC GT 1.
IF L_EMKPF-MSGID NE SPACE.
*/ Fehler auf Kopfebene
MESSAGE ID L_EMKPF-MSGID TYPE 'S'
NUMBER L_EMKPF-MSGNO
WITH L_EMKPF-MSGV1 L_EMKPF-MSGV2
L_EMKPF-MSGV3 L_EMKPF-MSGV4.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ELSE.
*/ Fehler auf Zeilenebene (Ausgabe des ersten Fehlers)
LOOP AT L_EMSEG_TAB INTO L_EMSEG.
IF L_EMSEG-MSGID NE SPACE.
MESSAGE ID L_EMSEG-MSGID TYPE 'S'
NUMBER L_EMSEG-MSGNO
WITH L_EMSEG-MSGV1 L_EMSEG-MSGV2
L_EMSEG-MSGV3 L_EMSEG-MSGV4.
Page 16
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT L_EMSEG_TAB INTO L_EMSEG.
CALL FUNCTION 'QAMB_COLLECT_RECORD'
EXPORTING
LOTNUMBER = P_QALS-PRUEFLOS
DOCYEAR = L_EMKPF-MJAHR
DOCNUMBER = L_EMKPF-MBLNR
DOCPOSITION = L_EMSEG-MBLPO
TYPE = '7'.
ENDLOOP.
*/Sonderkorrektur für Frei-An-Frei & WE-Sperr-An-We-Sperr
IF NOT P_QALS-STAT11 IS INITIAL.
IF P_QALS-LMENGE04 EQ L_LMENGEGEB.
ADD P_QALS-LMENGE04 TO L_LMENGEZUB.
SUBTRACT P_QALS-LMENGE04 FROM L_LMENGEGEB.
ENDIF.
ELSEIF P_QALS-INSMK IS INITIAL.
IF P_QALS-LMENGE01 GE L_LMENGEGEB
AND NOT P_QALS-LMENGE01 IS INITIAL.
ADD L_LMENGEGEB TO L_LMENGEZUB.
SUBTRACT L_LMENGEGEB FROM L_LMENGEGEB.
ENDIF.
ENDIF.
CLEAR: P_QALS-STAT34,
P_QALS-MATNRNEU,
P_QALS-CHARGNEU,
P_QALS-LMENGE01,
P_QALS-LMENGE02,
P_QALS-LMENGE03,
P_QALS-LMENGE04,
P_QALS-LMENGE05,
P_QALS-LMENGE06,
P_QALS-LMENGE07,
P_QALS-LMENGE08,
P_QALS-LMENGE09.
P_QALS-LMENGEZUB = L_LMENGEZUB.
IF NOT L_LMENGEGEB IS INITIAL.
P_SUBRC = 4.
ENDIF.
ENDFORM. " CREATE_GOODS_MOVEMENT
Form POST_GOODS_MOVEMENT *
Warenbewegung buchen *
FORM POST_GOODS_MOVEMENT.
CALL FUNCTION 'MB_POST_GOODS_MOVEMENT'.
Page 17
ENDFORM. " POST_GOODS_MOVEMENT
Form POST_DATA *
QM-Daten verbuchen *
FORM POST_DATA USING P_QALS LIKE QALS
P_QALS_LEISTE LIKE QALS
P_QAMB_TAB TYPE T_QAMB_TAB
P_QAMB_VB_TAB TYPE T_QAMB_TAB
P_SUBRC LIKE SY-SUBRC.
DATA:
L_STAT LIKE JSTAT,
L_STAT_TAB LIKE JSTAT OCCURS 0,
L_QAMB LIKE QAMB,
L_UPDKZ LIKE QALSVB-UPSL VALUE 'U'.
*/QAMBs umsetzen (7 = VE-Buchung storniert)
LOOP AT P_QAMB_TAB INTO L_QAMB.
L_QAMB-TYP = '7'.
APPEND L_QAMB TO P_QAMB_VB_TAB.
ENDLOOP.
*/BERF & BTEI zurücknehmen
CLEAR L_STAT. CLEAR L_STAT_TAB.
L_STAT-INACT = 'X'.
L_STAT-STAT = 'I0219'. APPEND L_STAT TO L_STAT_TAB. "BTEI
L_STAT-STAT = 'I0220'. APPEND L_STAT TO L_STAT_TAB. "BEND
CALL FUNCTION 'STATUS_CHANGE_INTERN'
EXPORTING
OBJNR = P_QALS-OBJNR
TABLES
STATUS = L_STAT_TAB
EXCEPTIONS
ERROR_MESSAGE = 1.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
SUBMIT (SY-REPID) VIA SELECTION-SCREEN.
ENDIF.
*/Prüflos aktualisieren
CALL FUNCTION 'QPL1_UPDATE_MEMORY'
EXPORTING
I_QALS = P_QALS
I_UPDKZ = L_UPDKZ.
CALL FUNCTION 'QPL1_INSPECTION_LOTS_POSTING'.
CALL FUNCTION 'STATUS_UPDATE_ON_COMMIT'.
*/QAMB initialisieren
CALL FUNCTION 'QAMB_REFRESH_DATA'.
Page 18
PERFORM UPDATE_QAMB ON COMMIT.
P_SUBRC = 0.
ENDFORM. " POST_DATA
Form UPDATE_QAMB * -
Dear sirs,
I have one issue.
One of materials is assigned to quality.
GR (101 mvt type) is posted for that material for 20000 litres and inspection lot is created.
While performing transaction QA32, usage decision is to be made with 20000 litres and this much quantity is to be moved from quality stock to unrestricted stock.
Unfortunately user has posted usage decision with zero quantity.
With this,20000 litres of stock is left in quality only.
Now how can I change usage decision?
Please suggest me the solution
Regards,
SastryDear sir,
When I take QA32 and try to post usage decision for the same inspection lot, system is throwing error message "The function you selected can not be carried out"
When I try to post "return deliery to vendor " using MIGO keeping the stock type as Quality stock, then also system throws message "You do such changes in quality"
Please help me
Regards,
Sastry -
Error while doing the Usage Decision in transaction QA32
Hello Friends,
While doing the goods receipt for customer returns from customer, system generated a inspection lot with inspection type 06.
So in QA32 transaction, system is showing that inspection lot, but in same screen, against the column InspPlan: Material, system is not showing any entry.
Later on after analysis, i found that no inspection plan was assinged to the material, Plant for which that inspection lot was created. When i checked that inpection lot in transaction QA03, in Insp. Specifications tab, agaisnt the Assigned Specification section, system was not showing any entry in fields Group, Group Counter, Plant, Usage.
And against that inspection lot,status CRTD, PREQ, CHCR are active.
Because of which, when user is trying to do the UD against this lot system throwing the error message as Status check error.
When i checked again i found that status CRTD is throwing the error message.
Hence friend, i want to do the Usage decision for that inspection lot than how to do?
Now user has assigned the material, plant to the inspection plan in QP02.
Should i go to QA02 transaction, and in Insp. Specification tab, for fields group, group counter, usage, Plant, maintain the values?
Will this allow me to do the usage decision against the inspection lot which got generated when no inspection plan was assingned to that material, plant?
Waiting for your valuable inputs.For Result Recording and Ud the inspection lot status must be REL as u told ur status is CRTD it Mean Some master
is missing in inspection lot,generally inspection plan for that u run QA02 enter inspection lot no go to specification tab
there a button assigned specification there click on that as u click on button u will find that plan for above material copied to lot and it will show u plan detail line group and group counter no.
then go to next screen Sample if sample management is active and click on sample then system will calculate sample size then save ur lot. it would get Status As REL now ui can enter result or take UD
for QM setting Refer
http://sap-questions.blogspot.com/ -
Automatic TO Creation for QM Usage Decision
Dear Gurus
We all know WM TO to releasing stock from QI to UU or return goods to vendor can be created automatically,
My question is, when the usage decision is split into two, some material going into stock, and some returned to vendor. for return to vendor, SAP will do automatic transfer, but for material go into stock, SAP is not release Q status in WMS to unrestricted (blank), I have set the movement 321 to create TO automatically and post into same bin.
FYI, if the transaction is separated, SAP perform well (transfer Q to unrestricted done automatically and return to vendor also done automatically)
Is there any solution for this problem?
Thanks and Regards
CJ LeeHi,
In case of a usage decision for a partial quantity, it is not possible to create the TO for the generated posting change notice automatically. This is only possible when the full quantity is released. The same happens if you release a partial quantity and post the rest using a different stock posting. The reason is, there needs to be a user decision, which part of the quantity has to be posted, this is necessary for example when the quantity is distributed in the warehouse over many storage bins. But even if the full quantity is on one storage bin, there is no automatic TO creation. You can see this also in the online processing LT05), in case of partial quantities you have to enter the selected quantity in the quant list, for a full posting this is not necessary.
Hope this helps.
Regards,
Sinéad Curran -
Automatic Batch creation at the time of usage decision in qa32
hi all,
while doing usage decision in transaction qa32, user has to enter batch. can this batch assignment be done automatically at any stage of quality inspection? any ideas?
Best Regards,
AI.Hi,
When the Material is subjected to Quality management & batch management is active for that material.
Then during Goods receipt you can use automatic batch for that material so the material will be in Quality inspection with batch update
when you do the GR in 101
Whenever you do the usage decision then the same batch will flow.
rgds
Chidanand -
AFS-QM Error in stock posting performed by taking Usage decision
Hi all,
during stock posting with 105 mov type performed by taking Usage Decision (QA11), I faced with a strange system behavior, described beneath.
Previuos steps:
Purchase order creation
Partial Good receipt performed by MIGO, mov type 103 (Blocked stock from PO)
Automatic Creation of Inspection Lot
Error encountered:
If I take usage decision (QA11) for the inspection lot created, putting the stock checked in Unrestricted Use (correspondant mov type = 105), in the following good receipt (related to the same purchase order), the incoming stock available is less of the real quantity, previously accepted..
After some checks we understood that with 105 mov type the system doubles the real quantity previoulsy accepted, acting in the following manner:
Initial PO: 100 PZ
1° Good receipt: 30 PZ
(automatic creation of inspection lot)
If we take a usage decision, posting stock to unrestricted use (mov type 105), in the 2° Good receipt, the quantity available from the same PO is not 70 PZ (100 - 30), but only 40 PZ ! ! (100 - (30 * 2)) = 40
Please note that it does not occur if we post stock (always 105 mov type) with a MIGO transaction, so we are forced to think that the problem is strictly related to AFS-QM inventory posting, and not to 105 mov type or inbounding process.
Thanks for your collaboration,
Regards,
AleI'm not familiar with the specific apparel and footwear solution but with regards to QM, if you are using the standard SAP delivered stock postings, it should use 105 to accept the material to unrestricted for the GR blocked.
I would first use MB51 for the material and batch and review all the material movement documents. Look at the trail of movements and try to see where the changes happen.
In your example, what did the unrestricted inventory and GR blocked inventory show as stock levels?
I'd also check OSS for issues related to AFS/QM. This is not new functionality in SAP so I would be surprised if this was an actual bug or problem in the system that hasn't been seen before.
FF -
Hi Gurus,
What will be the procedure after rejecting the usage decision. Stock from quality moves from quality to Blocked. So i tried moving the stock from blocked to quality through the inventory movement transaction, for which it giving an error "Managed by QM view".
So what is the transaction should i use to get the stock back to quality.
What would i recommend to my User if he asked what should i do if the inspection lot is rejected.
Please suggest.
Thanks in advance,
Quantum.Hi
What will be the procedure after rejecting the usage decision. Stock from quality moves from quality to Blocked. So i tried moving the stock from blocked to quality through the inventory movement transaction, for which it giving an error "Managed by QM view".
A)When a lot is rejected means you have done RD :122 Mvt.
1.You can do 123 by activating 08 inspection type.
2.Go to MB1B and do 123 Mvt type
3.08 inspection type lot will be generated and Material will appear in quality can be seen thro' QA32.
4.Then UD can be taken.
B)When you move it to Block stock:
1. Then You can activate 08 inspection type.
2.Go to MB1B and do 349 Mvt type.
3.08 inspection type lot will be generated and Material will appear in quality can be seen thro' QA32.
4.Then UD can be taken.
I hope this will help you
Regards
Sujit -
Usage Decision IP address / Terminal Number
How to get Usage Decision IP address / Terminal Number?
Hi Vivek.
Just a note, your posting was reported as probably being in the wrong forum and more suited to a BASIS or security forum. But the question is about UD's so it's a borderline call for me so I left it.
Now, as far as the question goes, I don't think what you want is possible without modifications. There is no log tracking IP address for when a UD is given. I.e. the IP address is not stored with the UD administrative data anywhere. So once the user logs off, any chance of getting that data would be zero.
I do know your BASIS or security team can definitely get the IP address for user's online and depending on what they are recording and monitoring, they may have logs but probably not directly related to the transactions used.
This discussion has a lot of info in it: SAP User Login Transaction code History details
The trick will be to capture the info and store it some where. My suggestion might be to utilize a user exit when the UD is saved, and use the FM "TERMINAL_ID_GET" to get the IP address. (Note: I have not personally done this or used that FM, but I am told that it will return a user's IP address), then store the IP address in the UD long text.
Craig -
QM Usage Decision Error : Deficit Batch restricted
I am unable to reject two batches..it shows 'no inventory exsists for this material'
Usage Decision TCode gives me the following error:
Deficit Batch restricted
Can you please tell me, what might be the probable reason?
ThanksWell.. it's basically telling you it can't find the material in the stock category it is looking for it in.
So, to resolve this, first find out where the batches really are.
Get the actual batch numbers from the inspection lots and run MMBE to see where the material is and what the status of the batch is, restricted or unrestricted.
You must then figure out where is the UD transaction looking for the material? You can check this by looking in config and the looking at the settings for the inventory posting. You should see 3 movement types for the reject posting line. One for QI, one for unrestricted and one for blocked.
What you need to do, is a) get the batch inventory into the proper inventory bucket. This might be as simple as unrestricting the batch. b) if you can't get the material where it needs to be, you might be able to temporarily change the movement type used for the reject postings. Then change it back to what it should be once you rejected the material.
Hope this helps.
Craig -
What is the Object type for Usage Decision
I am creating a status profile for UD, that is, If no result recording the no Usage Decision. Which object type should I assign against this newly created status profile?
Unless I assign a Object type, I cannot assign business transactions.
Vineeth VargheseHi Vineeth,
The required object types are insp. lot w/o plan or char, insp. lot with plan and char, insp. lot with plan w/o char.
I can suggest you to go through the following link, its beautifully explained step by step with screenshots.
[http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/20fbc091-ea3a-2b10-f0a3-877ffbf36436?quicklink=index&overridelayout=true]
Hope this solves your issue. -
How to Create Custom Usage Decisions
Hi,
I am working in ECC 6.0. I want to create a Custom Usage decision (Plant Specific). I can not remember where to go to set this up?
If I use transaction QS41 and set up my own Code Group under Catalog type 3 (Usage Decision), where can I attach the Selected Set that tells the system how to post the Usage Decision (i.e. Unrestricted, Restricted, Scrap...)
Any help with this would be huge.
Thanks so much,
-BruceThanks for your quick feedback.
I get confused sometimes with this.
When I go into QS51..I get to choose Catalog Type 3 (Usage Decision) and my Plant. Then I create my Selected Set. I highlight that and Double Click on Selected Set Codes. Inside there I create my Accept and Reject codes and assign Posting Proposals. From there I save.
I just ran a MIGO transaction and created an 01 type Inspection Lot. I tried to go in and do a Usage Decision on it. When I hit the drop down...it gives me the Original SAP Catalog. I do not see my Selected Set I just created.
Can you tell me what I'm doing wrong?
Thanks a Ton! -
Inbound Idoc type for Usage Decision QA11
Dear SAP Gurus,
Would like to find out if there is any inbound idoc type to perform Usage Decision (transaction QA11).
Will reward points for any kind of help. Thank you.
regards,
Ju LeeHi,
There is no standard Inbound Idoc for UD. But there is BAPI available for same "BAPI_INSPLOT_SETUSAGEDECISION". -
Usage decision for movment type 323
Hello
Can anyone tell me how I can post movment type 323 through QA11 with a usage decision?
I can see in config Quality Management>Quality Inspection>Inspection Lot Completion>Define Inventory Postings that there is a posting UD TRANSFER02 that uses 323 but I cannot see how this is posted through transaction QA11!
Thanks
Suehello,
Can you do this. in the config path Quality Management>Quality Inspection>Inspection Lot Completion>Define Inventory Postings , create a new entry with 08 suffix. Assign mvt type 323 to it.
In my system it comes with a description "other qty posting". Save it. now this new entry will show up in qa 11 in the inspection lot stock tab where you could post the quantity with this entry to trigger 323 mvt type.
Now go OMJJ and check for mvt 323 whether QA11 is in the allowed transactions , if not add it there/. ( Caution: 323 isnt meant to work with QA11)
now run qa11, it works fine.
But my question is if you arent accepting , rejecting or doing a sample, or other functions described for QA 11 UD , then you can just do a MB1B 323 and this should serve your purpose, why do this though QA11.
Hope this helps
Thanks, -
Validaing usage decision in qa11
Hi,
My requirement is validate the usage decision in qa11 transaction, if the user select ACCEPT iam checking some conditions and throwing error message so that it will not be save, this is worrking fine.
my problem is if the user want to be remain on same screen after the error message and want to REJECT the lot, after rejecting this SAP meessage is coming like INTERNAL STATISTICS ARE NOT UPDATED. and user is not able to save the REJECT lot.
for rejecting user has to come out of the screen and re enter in to the transaction select the REJET than it is allowing.
after error message is displayed it is not allowing to do any action.
Pleae let me know if any body has coe acrross this.
Regards,
Tirumal.Hi Tirumal,
I am giving you a perfect solution.
In Include MQEVAF14.
FORM "FORM d0101_pruef_ve".
Create a implicit enhancement at the end of above mentioned form.
Write below mentioned code inside the implicit enhancement.
If rqeva-vcode EQ 'A'.
MESSAGE 'ERROR' TYPE 'E'.
Endif.
Try this.
BR,
Vijay
Maybe you are looking for
-
Need help as BT help pages as useless!
I have had my BT package for just under a year (I think its a year as I've just had an email asking if I want to sign up for another Line Saver rental). I can't find out how long my package has left to run or if there are individual elements which ru
-
Does anyone know of a retailer, in store or online, that still sells hard cases for the early 2008 MBP(silver keys)? I've been searching but every place seems to only carry cases for the unibody MBP. Any ideas?! Let me know please
-
F110 House Bank, F_BL_BANK
Hello Everyone, In the automatic payment run (Tcode F110), I want to restrict the user based on House Bank (Payment Type). Related to house bank, I found one object F_BL_BANK. I went in SU24, added this object and Check/Maintain but this object is no
-
Regarding File Offset While Reading
Suppose I have a file with the string "HELLO" written in it. I now try reading it with readBytes(AdobeArray,20,2) // But I dont get any EOF error inspite of reading the file from offset 20 which is well beyond the EOF offset for this file. Why is i
-
iTunes 7 introduced a feature called "Album Artist". When I transfer music to the iPod (Ver. 5.5) I look in the menu for "Album Artist" but do not see it. I see Artist, but not "Album Artist". It is there? Thanks Intel Based iMac, Mac Mini, MacBook,