I'm new to SAP and studying calling some predefined BAPI function using JAVA. I have a question. I open the function BAPI_QUOTATION_CREATEFROMDATA2 in SE37. In it, I found import and tables. The import is the parameters I need when calling this function, but in tables, there are about 12 tables and structures, how do I know which is the minimum requirement to call the function? Can anyone help? Thanks.
Please see the optional column, highlighted in the image below. The tables that are optional are checked. Tables that do not have 'Optional' checked are required. You can see from the image that 'QUOTATION_PARTNERS' is the required table.
Since this is a BAPI, it is a generally released function module by SAP and therefore better documented than just any other function module. Most BAPI's have good documentation that you can access in SE37 by clicking on Function Module Documentation.
Unfortunately for BAPI_QUOTATION_CREATEFROMDATA2 is looks like the developer was lazy and copy pasted it from an order creation BAPI since it mentions:
Notes
1. Required entries: ORDER_HEADER_IN : DOC_TYPE Sales document type
SALES_ORG Sales organization
DISTR_CHAN Distribution channel
DIVISION Division ORDER_PARTNERS..: PARTN_ROLE Partner role, Sold.to party
PARTN_NUMB Customer number ORDER_ITEMS_IN..: MATERIAL Material number
Luckily the documentation for the parameter itself is a bit betterL
The minimum requirement is that the sold-to party is entered at header level. Additional partner functions can then be automatically determined.
Related
(access key for SAP standard modifications needed for test data of this question)
Introduction:
I want to find a certain type of modification to a certain SAP standard repository object (IDES test dataset).
The modification is located in the include of a function group (it is listed under System-defined Include-files in the functionpool of the function group).
So far, I found the table SMODILOG as a central list of modifications (Log of Customer Modifications to Dev. Env. Objects).
Test Data:
My test data is function group V07A, that has e.g. the include LV07A014 (Part of the LV07ANNN include). This was modified by inserting stuff in its source code (one needs an access key in order to be allowed to do this) such as:
*{ INSERT IDSEXAMPLE 1
* this is a comment, which was added
*} INSERT
Goal:
Subsequently I want to find a table where all modifications like this are listed. I want to find the place of modification, i.e. the object type and program id of the object that was modified.
2 Questions:
I realize that the SAP standard include of a function group has a different object type and program ID than the top-include and uxx-includes.
Whereas the latter are of type PROG and prgmid R3TR (found in object catalog entry), the LV07A014 has an object catalog entry identical to the function group that it belongs to, namely R3TR FUGR. This is already peculiar to me. This seems to me as if the resolution to the sub-level (include level) is missing.
In addition, the modification to LV07A014 is listed in table SMODILOG as having the object type (field sub_type) REPS (the pgmid is not included in SMODILOG). I would expect PROG, as for the other inclueds (LTOP, LUXX).
-> Why is there a difference of object types, programids between L_TOP, L_UXX on the one hand and L_NNN Inclues on the other? (Or am I mistaken?)
-> Where can I find information of all SAP standard modifications in my system and the true object type,pgmid belonging to these modified objects (and not the function group that the modified object belongs to, this resolution does not suffice)?
There is no table or something similar where all modifications are listed. The table E071 is a good source to check pgmid and object type.
Why there is a difference of object types, program IDs between L_TOP, L_UXX on the one hand and L_NNN Includes on the other remains a mystery. SAP...
Why do you need a table? For what? Is it purely academic question or connected with real life tasks?
Have you ever tried SE95 transaction? It lists all modifications that were done in system disregard of object type and name. Yes, and function groups too. They are easily searchable by hierarchy
If it is FUGR include that was modified, then it will be listed in the node Outside of modularization units
Finally RTFM, bro...
I am using SAP for Windows (SAP NetWeaver; 730 Final Release, Version 7300.3.15.1085) and I need to find a faster way to do part of my routine. I use the form MB51 along with some criteria to find all transactions I need. Then, I select the Quantity in UnE column and hit the sigma (Add Up Values) symbol at the top. This gives me the sum total of all rows at the bottom.
The goal is to simplify this process. I want to be able to add in the material, the plant, the reference, and the document header texts and just return the sum of all rows. I literally only need the final sum and nothing else. Does anyone know of a form in SAP that can help me do this? Or does anyone know of a way to customize MB51 so that I achieve my desired output?
In addition to a Dirk's proposal to use SAP Query, you can consider creating SAP transaction variant and running it in a background mode.
This allows executing a transaction with the specified parameters (including summation) periodically and sending results to email.
It looks like you lack development permissions on the system, so this can be simplest way for acquiring a MB51 sum. Besides permissions, your task also requires knowledge of MB51 tables and their relations.
Just create a layout variant and create a variant for the selection screen with the layout variant. You can also hide unused fields with the selection variant.
I am trying to write a custom outputter for U-SQL that writes rows to individual files based on the data in one column.
For example, if the column has a date "2016-01-01", it writes that row a file with that name, and a the next row to a file with the value in the same column.
I am aiming to do this by using the Data Lake Store SDK within the outputter, which creates a client and uses the SDK functions to write to individual files.
Is this a viable and possible solution?
I have seen that the function to be overriden for outputters is
public override void Output (IRow row, IUnstructuredWriter output)
In which the IUnstructuredWriter is casted to a StreamWriter(I saw one such example), so I assume this IUnstructuredWriter is passed to this function by the U-SQL script. So that doesn't leave for me any control over this what is passed here, also it will remain constant for all rows and can't change.
This is currently not possible but we are working on this functionality in reply to this frequent customer request. For now, please add your vote to the request here: https://feedback.azure.com/forums/327234-data-lake/suggestions/10550388-support-dynamic-output-file-names-in-adla
UPDATE (Spring 2018): This feature is now in private preview. Please contact us via email (usql at microsoft dot com) if you want to try it out.
I am running a query on a product. I need a field that will look at the user defined field which contains another product and check that stock level. Any help would be great.
What is the main objective?
Are you trying to check on that item because that item is the material/component? or act like a substitution?
Using UDF is quite not feasible as you have to get the link to the Item Master Data, and I have not figured out yet how to do that.
But if you are using it as substitution, why don't you use Alternative Item in Inventory > Item Management > Alternative Items? It will show on Sales Quotation for you to display it to customer. Or during Sales Order, you can get it displayed for alternative should your main item is shortage.
If you are using those item as a component, I suggest you use Bill of Material. During Production Order you will be able to see those component's availability in qty, and also you can have more than one, unlike UDF.
Hope this helps.
I think the key part you're missing here is the naming convention which SAP adpots for user defined fields.
Correct me if I'm wrong, but it seems that you're capable of querying these fields from a SQL point of view.
UDFs by defuault, will have their column name prefixed with "U_".
For example, the UDF 'AnotherProduct' will be referred to in SQL as 'U_AnotherProduct'.
Hope this helps, if not, please explain your problem in some more detail.
Just as some background, I intend to write an Excel add-in with .NET that can execute queries from an SAP system.
Thus, I'm looking for a list of function modules for SAP's SQVI transaction. I can't seem to find much information about them; the few forum posts I had found before seem to have gone into the internet oblivion.
Specifically, I want to be able to look up the queries created by a user and then display the results in Excel. I can manage the Excel manipulation as well as remotely executing SAP function modules; I simply can't find which SQVI function modules I need to execute.
Update: I did find this post which directed me to search for function modules in the AQGF group (function modules starting with RSAQ*)
Try RSAQ_REMOTE_QUERY_CALL_CATALOG, it seems to do the trick for me.
As told already by tomdemuyt, you have now found the function to get the required data.
To browse around and get more further data, goto transaction SE93, enter Transaction id SQVI, go to development class or package SQUE, then browse this package with SE80 / have a look at the hierarchy of objects, function groups in special.
Then you see many function groups, but one of them is AQRC to which the mentioned function module RSAQ_REMOTE_QUERY_CALL_CATALOG belongs.
A list of SQVI Queries by User can be found simply using the following selections in transaction SE16N for table AQLTS.
AQLTS-CLAS = ‘SYSTQV*’
AQLTS-HEAD = ‘X’
It is not the ideal way to retrieve the data, because a single field (AQLTS-TEXT) must be parsed for the userID:reportID, but it brings what is needed together in one table.