Usage Decision long text
When you go to QA11, GOTO->UD long TEXt, I need to see the text in SAP table. which table records this UD long text?
hi
generaly in SAP all long text will not store, based on program development we can get.
so you need to use some tables like QAVE for inspection lot number and then
Table STXH
then in QA11 You need some data.
MEnu->EDIT>UD long text then GOTO-->HEader here you need to consider text name, language,Text id and text object.
these are key areas for development.
you can work with yuor technical team.
-ashok
Similar Messages
-
Follow-up actions via Usage Decision
Hi,
While I'm trying to use the follow-up action "MAIL3" in the usage decision screen, I recieve a mail from my user to my user.
Is it possible to send the mail via follow-up action "MAIL3" to other users?
Where can I enter those user's names?
Thanks & Regards,
BegüHi Begum,
Yes as Gajesh as referd the function module is "QFOA_UD_LONGTEXT_SENDING". That belongs to Mail:3.
Mail3 is STD SAP follow up action and will have following information:
Material document number
Material
Total lot quantity
Sample quantity
Completed number and description of stock postings
Usage decision code
Lot valuation
Quality score
Name of person who made the usage decision
Long text (if applicable)
[http://help.sap.com/saphelp_45b/helpdata/en/18/438976449011d189420000e829fbbd/frameset.htm]
[http://help.sap.com/saphelp_nw04/helpdata/en/24/77643c07437c7fe10000000a114084/content.htm]
Regards,
Shyamal -
Transport of code long texts - QKATALOG
Hello,
I want to transfer the long texts for the defct codes in QM.
There are two SAP notes about this 38570 & 61049.
I am aware of the usage of long text transfer. Do that for several other texts regularly.
I noticed that there is a problem in the name determination. As the ID is looked up by client it will never find it when the source client is different than the target client.
Example text object name: 2009ZDC001 101 000001E
The first three digits are the client. Greate we have different source and target system client.
I actually used the old program RSTXR3TR and replaced the client in the file and it worked.
Does any one know SAP correct standard solution.
I can not instruct our people replacing text file values. Especially not when those are quite lots of texts we right now transfer.
Thanks for any help.
VolkerHello,
I want to transfer the long texts for the defct codes in QM.
There are two SAP notes about this 38570 & 61049.
I am aware of the usage of long text transfer. Do that for several other texts regularly.
I noticed that there is a problem in the name determination. As the ID is looked up by client it will never find it when the source client is different than the target client.
Example text object name: 2009ZDC001 101 000001E
The first three digits are the client. Greate we have different source and target system client.
I actually used the old program RSTXR3TR and replaced the client in the file and it worked.
Does any one know SAP correct standard solution.
I can not instruct our people replacing text file values. Especially not when those are quite lots of texts we right now transfer.
Thanks for any help.
Volker -
Long text uploading problem in BDC
Hai Gurus
please help me, it is urgent
i want to upload more than 200 characters filed from flat file to every inspection lot record usage decision(QA11) through BDC for every inspection lot
Brief description about my problem:
in the transaction QA11 , enter any new inspection lot number and press enter , in this next screen (after pressing enter) in usage decision sub screen , create long text for UD icon is there in that we can enter long text(any number of characters ) through manually for single inspection lot but i want to enter long text for UD through BDC for more than one inspection lot automatically
points will be rewarded
ThanksHai Gurus
please help me, it is urgent
i want to upload more than 200 characters filed from flat file to every inspection lot record usage decision(QA11) through BDC for every inspection lot
Brief description about my problem:
in the transaction QA11 , enter any new inspection lot number and press enter , in this next screen (after pressing enter) in usage decision sub screen , create long text for UD icon is there in that we can enter long text(any number of characters ) through manually for single inspection lot but i want to enter long text for UD through BDC for more than one inspection lot automatically
points will be rewarded
Thanks -
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 * -
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 -
Hi,
Please let me know which table to be seen to get the details of longtext in Usage decision, we can see in QAVE but here we will only know that long text is there but we will not get what is given in long text.
Regards
VenkatHi,
You can use function module READ_TEXT with text ID = QAVE and text object = QPRUEFLOS.
Regards,
Roderick -
Hi,
Is there a possibility to force users to enter a long text when a rejection UD is recorded? Are there any function modules i can use which i can link to a follow-on action? When i change the UD i need to enter the long text, so i assume there should be something that enables this for negative ud's as well.
Regards,
MaartenHi,
In Material Master - In QM view, activate Documentation required indicator.
Functionality activated after this
Causes changes to inspection lots for this material to be documented by the system.
Changes to the inspection lot or usage decision are recorded by change documents and displayed in the change history for these objects.
Status changes are recorded in status management and displayed in the status history. -
Hi Gurus:
I need to know the tables where the long texts are saved for the following:
1. Code description
2. Inspection method
3. Documentation when the result is rejected
N.B: I need the long text itself, not the indicator that a long text exist.
Regards,
MaXHi MAX.
Please find below tables.
Master Data QMTB Inspection method master record
Master Data QMTT Inspection Method Texts
Catalog QPCD Inspection catalog codes
Catalog QPCT Code texts
Catalog QPGR Inspection catalog code groups
Catalog QPGT Code group texts
Catalog TQ07 Follow-Up Action for Usage Decision of Inspection Lot
Catalog TQ07A QM: Function Modules for Follow-Up Action
Catalog TQ07T Language-dependent texts for Table TQ07
Catalog TQ15 Inspection catalog type index
Catalog TQ15T Language-dependent texts for table TQ15
Catalog TQ17 Defect classes
Catalog TQ17T Language-dependent texts for table TQ17
Results Recording TQ73T Texts for origin of results data
Results Recording TQ76T Texts for the processing status of insp
Results Recording TQ77 Attributes for the Inspection Characteristic
Results Recording TQ77T Text Tables for Attributes
Defects recording TQ84T Text table for confirmation profile
Defects recording TQ86 Report category for defects recording
Defects recording TQ86A Assignment report category for work center
Defects recording TQ86T Text table for report category
Defects recording V_T35 2B_F Generated table for view V_T352B_F
Regards
SANIL -
Hi
In QE51n the user is recording the results.Result:Pass/Fail
The usage decision by QA10 scheduled job back ground job every 1 minute.
Now my client wants to see what are the materiials Auto UD was happened in a period ?
Can you tell me where can we see Auto UD results?
In results recording if we given result as fail then what Auto UD will do for this Inspection lot?
Regards,
srihariNow my client wants to see what are the materiials Auto UD was happened in a period ?
When you shedule th job run in background ,once UD is taken in background Name of usage decision made always appear to be scheduler's name.
QA32--->dynamic selection( shift + F4) ->Lot usage decision->sheduler's name
Along with this --> in same dynamic selection there is >control indicator>automatic UD-->ticked for auto UD
Also note :The system documents the automatic usage decision in the long text for the usage decision.
Can you tell me where can we see Auto UD results?
See the log of the schedule backgroung run & QA32
In results recording if we given result as fail then what Auto UD will do for this Inspection lot?
It depends upon what is Status of the Inspection result ( 4"skip" or 5"valuated & closed") and not what result recorded. -
Usage Decision- QA10 -(Progarm-RQEVAI30)
Hi All,
Can anyone tell me the user exits used in this program and their functions.
Thanks & Regards,
Ebin JosephQEVA0004 Exit for changing information line in usage decision header
QEVA0005 User subscreen for displaying add. data for usage decision
QEVA0006 Entry to usage decision transactions
QEVA0007 UD: Control of compulsory comment or long text presetting
QEVA0008 Usage decision: Customer function key (e.g. to cancel UD)
QEVA0009 UD: Predefinition of quantity to be posted to sample stock
QEVA0010 UD: Usage decision check
QLCO0001 QM: Call alternative costs report from UD
QSS10001 Possibility of calling a different print report
these are available user exits for qa11.
vijay -
Reg changes made to Usage decision
Hi,
How to find out the changes made to UD in QA12 and moreover how to get the details like what is the actual change done
Regards
VenkatIf you have clicked the "change document" in QM view then change history for the Usage Decision can be seen in the long text of UD or In Change history in QM view.For accessing this long text you may have to use function module READ_TEXT
-
Long text at inspection completion.
Hi everyone.
I have following scenario:
1.- Quality certificate should get variable data when it is printing. User needs to choice from a list, what he will print for certificates, that must be done at Usage decision.
2.- I think using UD long text at the time to save UD can solve my issue.
3.- I just can get automatically UD long text when I force inspection completion.
How can I get automatically UD long text without force inspection completion????
Regards.Hi everyone..
I think I wasn't clear in my initial request....this is regarding long text for UD....
Since you force inspection completion in UD (QA11), and save your UD, system automatically show you other screen "Change long text on usage decision", and you can enter any text.
But that only happend when you force inspection completion....when you don't force inspection completion, long text can't be updated....
I need that screen "Change long text on usage decision" appear every time, with or wihout forcing inspection completion...
I'll really appreciate your support.
Best Regards.
Juan. -
Hi All,
In my BSp application user can enter long text ( can be more than 300 char ) in TextEdit.
problem is as below:
1) i am getting all the text in oninput processing ...
2) using the FM READ_TEXT to get mail template built in SO10.
3) Replacing all dynamic variables in mail template with user enterd text.
4) then passing the data to FM SO_NEW_DOCUMENT_SEND_API1. this FM has table parameter with 255 char ( please check once )
i am able to send the data in mail. But long text more than 256 char is not comming as single paragraph.
For expamle ...user enter the following text in text edit.
Responsible for the development, implementation, and maintenance of human resource information systems (HRIS) associated with the collection, retrieval, accessibility, and usage of employee information for Human Resource department planning and activities. Maintains internal database files and tables, and develops custom reports to meet the requirements of Human Resource management and staff.
in inbox i am getting as below:
Job Description for : Responsible for the development, implementation, and maintenance of human resource information systems (HRIS) associated with the collection, retrieval, accessibility, and usage of employee information for Human Resource depa
Maintains internal database files and tables, and develops custom reports to meet the requirements of Human Resource management and staff.
Job Description for is fixed text from SO10 templete. and remainning text is user text.
some data is missing in mail.
SO10 template is as below :
Job Description for : &INSTRUC1&
&INSTRUC2&
help to solve the above issue.
Regads,
Kishan
Edited by: kishanrao.sap on Oct 11, 2010 3:12 PMHi Krishna,
Please use the object_type parameter of tthe FM as 'HTM'.
Then divide the text by append them into the lines of the object_content. In the begining and end make sure you have
<p> -- in the begining
</p>-- in the end
if i want to type the text in one para " My name is Imran and i am an ABAP developer".
CLEAR: WA_OBJECT_CONTENT.
WA_OBJECT_CONTENT-line = '<html>'<body><p> My name is Imran.
APPEND WA_OBJECT_CONTENT TO T_OBJECT_CONTENT.
CLEAR WA_OBJECT_CONTENT.
WA_OBJECT_CONTENT-line = ' and i am an ABAP developer</p></body><html;>'.
APPEND WA_OBJECT_CONTENT TO T_OBJECT_CONTENT.
Hope this helps you.
Regards
Imran. -
Selection of usage decision based on % of rejection done thorugh Insp Lot
My business scenario is as follows:-
I have created new usage decision codes as mentioned below through QS41and assigned the same to code group RI-UD and catalog 03.
I3 INITIAL REJECTION >75% to <=100 % (1)
I4 INITIAL REJECTION >50% to <=75% (40)
I5 INITIAL REJECTION >25% to <=50% (60)
I6 INITIAL REJECTION <=25% (80)
and quality score maintained the same through QS51
Code Group Code Shot Text for a code Code Valuation Quality Score
RI-UD I3 INITIAL REJECTION >75% to <=100 % (1) R Rejected (not OK) 1
RI-UD I4 INITIAL REJECTION >50% to <=75% (40) R Rejected (not OK) 40
RI-UD I5 INITIAL REJECTION >25% to <=50% (60) R Rejected (not OK) 60
RI-UD I6 INITIAL REJECTION <=25% (80) R Rejected (not OK) 80
I need to automate the selection of usage decision code to be done by system based on the accepted/rejected quantity entered.
How to go about it. Can anybody on this please?
Thanks in advance.
RaviAnything can be done SAP! But what you want would be all custom. There is no SAP functionality that would do that for you. I'd start with the auto UD program first. Have the programmers modify the selection parameters to select the list of lots. Than process those lots with the logic you want o use and change the UD accordingly. I'd make sure I could run the program manually as well. Similar to some of the other UD workload programs.
FF
Maybe you are looking for
-
Printing AnyGantt creates black background color
I use a customized AnyGantt chart. When I try to print it on a page A3 I get a mean issue with the background color. It becomes black. The Chart itself looks good. When I try the same with examples from AnyChart.com the no black background appears. I
-
Forcing the user to select one of the OBIEE prompts?
Hi All, Iam new to OBIEE I have a requirment in which I need to force the user to select one of the selection from prompts in OBIEE eg: you need to select one of the contry either India or America to get the other prompts enable and filter the report
-
Can't get mount_afp to work
Hi - I have written a small script to mount the disk of another iMac running Leopard. I can mount the disk no problem using the Finder "Connect to Server..." menu option but when I try doing this from a shell script I always get an error: sh-3.2# ./m
-
Hi, In the initSID.ora, we can specify PROCESS=<number> I new that this is the maximum processes, but what is it ? Anyone can explain more detail ? For LARGE site, what is the optimal setting ? Is it true that smaller value will increase the performa
-
Where is the music in my "iTunes Music" folder?
Hi, So, I have plenty of music being played in my iTunes, however, when I go to look in finder, under the iTunes Music folder, there is nothing. It's the newest version of iTunes. Why is this?