Defining container for BO FIPP method POST
Hi Experts,
New to workflow, we are creating a program that instantiate BO FIPP method POST, how to create container for this fields?
object-key-documentno. object-key-sourcecompanycode. object-key-fiscalyear.
We will populate this from parameters.
Thanks!
Hi John
I am not sure if I got your requirement clearly, but if you are trying to call the processing of POST method of FIPP via a stand alone ABAP code, you can use the following:
Call FM SWO_CREATE where objtype = 'FIPP' and objkey = concatenated string of Doc No, Source Company Code and Fiscal year (including spaces and/or leading zeros ... iam assuming that you have this key in your ABAP program)
You will get the FIPP object Reference in parameter "object"
Now using this reference, call FM SWO_INVOKE where Access = 'C' (that is, call a method......if you need to read an attribute, you can make this as 'G'), Object = the object reference from above call to SWO_CREATE and VERB = 'POST' (if left blank, the default method of the BO is called for access 'C' and for access 'G', the default attribute is returned if no value is given). Pass any method data in "container".
Hope this is what you were looking for....if not... please elaborate on your requirement.
Regards,
Modak
Similar Messages
-
To have error msg for RG Part II posting
Dear All gurus,
presently in our system for invoice posting we have defined check for RG Part II posting as WARNING only. I want to hav it as ERROR msg. That is untill user has done Part II posting, system shud not save invoice. I checked system msgs in SPRO> MM>Log. Inv. Verification--> Def Attrbuted of System Msgs, but I cud not find that msg there. Can anyone guide me where can I change this msg to error msg.
Warning Message is as follows
RG23 Part II posting not yet done
I checked in OBA5
Message no. 8I478
Thanks
Edited by: sapsarang on Aug 7, 2009 2:02 PMHI,
U can do it thru
LG --> Tax on Goods Movement - India -- Tools -- Message Control .. here check 8I 478 is ava or not? if ava change the status into Error . if not ava, slect new entry and create for this msge nbr -
Create rules for selection of Reconciliation posting (TCODE: KALK)
Hello SAP Experts,
I haven't worked on New GL concept but I am trying to learn it myself. Till now I have linked the Controlling area with New GL. But I don't know how to "define rules for selection of reconciliation posting"
SPRO--->. FInancial Accounting (NEW) --->Financial Accounting Global Settings (NEW) ->Ledgers-> Real time integration of controlling and FA--->Define rules for selecting CO line items
If any of you who have worked on it can explain me about it then it would be great.
Thanks in advance.
Mohit
Edited by: mohitg7 on May 2, 2010 3:44 AMDo as below my dear
Go to FS00 and input the GL 400019. Check the Tab "Create/bank/interest.
Take the Field Status group and go to OBC4. Examle- G052
Click on the same Field Status group and double click on Asset accounting.
Asset retirement ...........................Required
Asset number / subnumber...........Optional
Now go to T Code OB41
Double click on Posting key 15
Click on "Maintain field status" from application tol bar. Double click on Asset accounting.
Asset retirement ...........................Optional
Asset number / subnumber...........Optional
Now post the transaction and see
Thanks -
Does not contain a static 'Main' method suitable for an entry point_
Hello
I want to to do a project with Entiity Framework . I add a project to my solution for my domain class and it's name is 'LinkModel.DomainClasses'. when I prees F5 there is an error like bellow.
Could You help me to solve this? thanks alot
..\Documents\Training\LinkCodeFirstLast\LinkCodeFirst\LinkCodeFirst\LinkModel.DomainClasses\obj\Debug\LinkModel.DomainClasses.exe'
does not contain a static 'Main' method suitable for an entry pointHi bkshn,
This error is caused by the missing "Main" method in your project. it is the entry point of your project.
If you want to create a EF project, you could follow the way in the aricle below.
https://msdn.microsoft.com/en-us/data/ee712907#codefirst
The Main method is like below.
class Program
static void Main(string[] args)
using (var db = new BloggingContext())
// Create and save a new Blog
Console.Write("Enter a name for a new Blog: ");
var name = Console.ReadLine();
var blog = new Blog { Name = name };
db.Blogs.Add(blog);
db.SaveChanges();
// Display all Blogs from the database
var query = from b in db.Blogs
orderby b.Name
select b;
Console.WriteLine("All blogs in the database:");
foreach (var item in query)
Console.WriteLine(item.Name);
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
And you could start to learn the EF from the following MSDN blogs.
https://msdn.microsoft.com/en-us/data/ee712907
If you have any other concern regarding this issue, please feel free to let me know.
Best regards,
Youjun Tang
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. -
Projectname.exe' does not contain a static 'Main' method suitable for an entry point .
Hi,
I'm developing a blog reader for windows 8 store app. It was perfectly worked before. But because of some miss behave my coding i get below error. No other errors there.
Error 1 Program 'c:\Users\.........\Desktop\Blog_Reader\Blog_Reader\obj\Release\intermediatexaml\Blog_Reader.exe' does not contain a static 'Main' method suitable for an entry point C:\Users\..........\Desktop\Blog_Reader\Blog_Reader\CSC
Blog_Reader
Please help me to figure this.
Thank You!Go to your App.Xaml and R-Click Go to Properties
Check whether the Build Action is ApplicationDefinition
If not change it to ApplicationDefinition. Clean the code (solution ) and Deploy..
Chears.... -
Hi,
I'm developed a blog reader for windows 8 store app. It was perfectly worked before. But suddenly it started to miss behave and I got an
error. No other errors were there other than that.
Error
Program c:\Users\.........\Desktop\Blog_Reader\Blog_Reader\obj\Release\intermediatexaml\Blog_Reader.exe' does not contain a static 'Main'
method suitable for an entry point.
C:\Users\..........\Desktop\Blog_Reader\Blog_Reader\CSC Blog_Reader
But I found the solution while I fixing it.
Solution for that is like below.
Go to your App.Xaml and Right-Click thenGo to Properties
Check whether the Build Action is
ApplicationDefinition
If not change it to ApplicationDefinition.
Clean the code (solution) and Deploy
Now the error is fiexed.Hi Robana,
Good sharing on the Technet.
This will definitely benefit other who may encounter the same issue as yours.
Thanks for your sharing again.
Kate Li
TechNet Community Support -
Postings for account type M ( posting key 99 ) are not defined
Hi,
I am trying to post vendor credit memo KG through FB01 using posting key 21 - Debit Vendor and posting key 99 - Credit Material.
I am getting the error "Postings for account type M ( posting key 99 ) are not defined Message F5204".
The posting key 99 is set for account type material. Is there anything else that need to be configured?
Is there any other way that i can debit a vendor and credit material through FI postings (without purchase order)
Thanks
SukumarHi Ravi,
I am also having the same issue.
I want to load some costs to materials thorugh Finance module. In that case i am trying to post the values through F-43 document.
In posting key 89, but system not accepted. As per your suggestion i am trying to take 81 posting key. Then system is asking the GL, there is i select the Stock GL, system won't allow to post the values to the stock account.
So what will be the solution to add or to deduct any other charges to the material cost through finance module. -
Terminating Event for BUS2017 Custom Method
Dear Experts,
I have an issue with the Terminating Event of the Workflow for BO : BUS2017. The event is getting triggered but receiver is not being picked.
I have created two events GR_103 and POST_105 in the Custom BO ZBUS2017 by delegating it to BUS2017. GR_103 is the triggering event for my workflow which I have triggered in the POST_DOCUMENT Method of the Implmentation for BADI : MB_MIGO_BADI.
GR_103 is triggered while doing MIGO (Goods Receipt) for Movement Type 103. My Workflow is triggered perfectly and then I have used a Dialog Asynchronous Task in which I have called the MIGO Transaction for Releasing the GR Blokced Stock using the Movement Type 105. I have created a Custom Method POST in the BO ZBUS2017 and I have used the FM: MIGO_DIALOG to call the MIGO. I am trying to raise the POST_105 event in the Method MB_DOCUMENT_BEFORE_UPDATE of the Interface IF_EX_MB_DOCUMENT_BADI. I have defined the Terminating Event for the asynchronous Task as POST_105.
Now the event POST_105 is triggered, but SWEL says 'No receiver entered'. Even the SWEINST shows the object data as the current Work Item along with Object Key, but still receiver not picked. When I try to trigger the same event in a test report by using call transaction, then the event triggers and work item gets completed without any issues.
Please advise.
Below is my terminating event code.
READ TABLE xmseg INTO wa_mseg INDEX 1.
CONCATENATE wa_mseg-mblnr wa_mseg-mjahr INTO l_objkey.
IF wa_mseg-bwart = '105' .
CALL FUNCTION 'SWE_EVENT_CREATE'
EXPORTING
objtype = 'BUS2017'
objkey = l_objkey
event = 'POST_105'
EXCEPTIONS
objtype_not_found = 1
OTHERS = 2.
ENDIF.
Regards,
Raju.Have a COMMIT WORK after the function call. (At least test it - I am not sure if it will have some effects in your BADI - at least you will know whether the issue is about missing commit).
And please use SAP_WAPI_CREATE_EVENT instead of the old function you are using.
Also, make sure that the events will look exactly the same in event monitor SWEL when triggered from your code and when using test tool. Maybe there is some minor difference/mistake (object key, etc.) that you haven't noticed.
Regards,
Karri
Edited by: Karri Kemppi on Feb 7, 2012 8:14 AM -
BADI ME_PROCESS_PO_CUST Method Post
Hi, how can we know in the method post of the BADI ME_PROCESS_PO_CUST if we are in creation mode (me21n) or change mode (me22n), I need to do some coding only at the creation of the PO but this method is call anytime we click save!
thanks!Hello Alexandre
It would be possible to check the transaction. However, if the BAPI BAPI_PO_CREATE is used the BAdI is also processed yet the transaction is most likely wrong.
An <u>unambigous </u>approach is to check IMPORTING parameter IM_TRTYP in method IF_EX_ME_PROCESS_PO_CUST~OPEN:
METHOD if_ex_me_process_po_cust~open.
* define local data
DATA:
lo_po TYPE REF TO cl_po_header_handle_mm,
ls_header TYPE mepoheader.
me->md_trtyp = im_trtyp. " save transaction type
IF ( im_trtyp = 'H' ). " add new purchase order
I would add an instance attribute MD_TRTYP to the BAdI implementing class and save the transaction type in method IF_EX_ME_PROCESS_PO_CUST~OPEN (see above).
Now you can simply add the following IF condition to your POST method:
METHOD if_ex_me_process_po_cust~open.
CASE me->md_trtyp.
WHEN 'H'. " add new purchase order
... " do required action for CREATE
WHEN ... .
WHEN others.
ENDCASE.
The possible transaction types can be found at: im_trtyp -> data element -> <b>domain </b>(fixed values).
Regards
Uwe -
Details for last question I post
the original code for last question I post(about the DataInputStream& EOFException) is here, thanks if anyone will bother to read it
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.* ;
public class MasterMindServer
public MasterMindServer()
try{
ServerSocket serverSocket=new ServerSocket(8000);
Socket socket=serverSocket.accept();
HandleAClient thread=new HandleAClient(socket);
thread.start();
}catch(IOException e){System.out.println("Error:"+e.toString());}
public static void main(String args[])
new MasterMindServer();
//inner class
class HandleAClient extends Thread
DataOutputStream out;
DataInputStream in;
BufferedReader fromFile;
private Socket socket;
String line;
public HandleAClient(Socket socket)
this.socket=socket;
public void run()
int x,o;
try{
out=new DataOutputStream(socket.getOutputStream());
in=new DataInputStream(socket.getInputStream());
fromFile=new BufferedReader(new FileReader("colorcode.txt"));
while((line=fromFile.readLine())!=null)
for(int i=0;i<10;i++)
String t=in.readUTF();
x=check_column(t);
System.out.println(x);
o=check_color(t);
System.out.println(o);
out.writeInt(x);
out.writeInt(o);
if(x==6) break;
out.writeUTF(line);
socket.close();
System.out.println("close");
}catch(IOException e){
System.out.println("Error:"+e.toString());}
public int check_column(String s)
String str;
str=s;
int count=0;
for(int i=0;i<6;i++)
if(s.charAt(i)==line.charAt(i))
count++;
return count;
public int check_color(String s)
String str;
str=s;
int count=0;
for(int i=0;i<6;i++)
if((line.indexOf(s.charAt(i))!=-1)&&(line.charAt(i)!=s.charAt(i)))
count++;
return count;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.* ;
public class MasterMindClient extends JFrame implements MouseListener,ActionListener
/** Default constructor */
//keep track of the row (or trial) and column number
int trial_num, col_now ;
Socket socket;
int count[]={5,5,5,5,5,5};
JPanel A[] = new JPanel[10];
JPanel B1[] = new JPanel[10];
JPanel B2[] = new JPanel[10] ;
JPanel notice = new JPanel() ;
JPanel sub_notice = new JPanel();
JPanel D1, D2 ;
static JTextField [][]color = new JTextField[10][6] ;
static JTextField [][]Output = new JTextField[10][2];
static JTextField [][]Answer = new JTextField[1][6] ;
static JButton []ok = new JButton[10];
JLabel L1 = new JLabel("Click the textfield to change color");
JLabel L2 , L3, L4 ;
String colorRange="BCGRYW";
Color colorName[]={Color.black,Color.cyan,Color.green,Color.red,Color.yellow,Color.white};
String temp ;
public MasterMindClient() {
// initialize
trial_num = 0;
col_now = 0;
//sub_notice is Panel where the heading labels are placed
sub_notice.setLayout(new GridLayout(1,3)) ;
L2 = new JLabel(" ") ;
L3 = new JLabel("X");
L3.setHorizontalAlignment(JTextField.CENTER);
L4 = new JLabel("O");
L4.setHorizontalAlignment(JTextField.CENTER);
L3.setToolTipText("matching color and column");
L4.setToolTipText("matching color but not matching column" );
sub_notice.add(L2);
sub_notice.add(L3);
sub_notice.add(L4);
notice.setLayout(new GridLayout(1,2)) ;
notice.add(L1) ;
notice.add(sub_notice) ;
// Get the content pane of the frame
Container c = getContentPane();
// Set GridLayout, 4 rows, 3 columns, and gaps 5 between
// components horizontally and vertically
c.setLayout(new GridLayout(12, 1, 5, 5));
c.add(notice);
JPanel Display = new JPanel() ;
Display.setLayout(new GridLayout(1,2,5,5)) ;
//create a Panel for each row to accept use input
// color[][] textfield is where the user input
// Output[][] is where to display the number of X and O
for (int i = 0; i <= A.length-1 ; i++)
A[i] = new JPanel() ;
A.setLayout(new GridLayout(1, 2,10,10));
B1[i] = new JPanel();
B1[i].setLayout(new GridLayout(1,6,5,5)) ;
B2[i] = new JPanel();
B2[i].setLayout(new GridLayout(1,3,5,5)) ;
for (int j = 0; j <= color[i].length-1 ; j++)
color[i][j] = new JTextField() ;
color[i][j].setHorizontalAlignment(JTextField.CENTER);
if (i == 0)
{color[i][j].setEditable(true) ;
else
{color[i][j].setEditable(false);
color[i][j].addMouseListener(this);
B1[i].add(color[i][j]) ;
} // j loop
ok[i] = new JButton("SEND");
if(i==0)
ok[i].setEnabled(true);
else
ok[i].setEnabled(false);
ok[i].addActionListener(this);
B2[i].add(ok[i]) ;
Output[i][0] = new JTextField();
Output[i][1] = new JTextField();
Output[i][0].setEditable(false);
Output[i][1].setEditable(false);
Output[i][0].setHorizontalAlignment(JTextField.CENTER);
Output[i][1].setHorizontalAlignment(JTextField.CENTER);
B2[i].add(Output[i][0]);
B2[i].add(Output[i][1]);
A[i].add(B1[i]);
A[i].add(B2[i]) ;
c.add(A[i]) ;
} //for i loop
//D panel is where we store the answer[][]
D1 = new JPanel();
D1.setLayout(new GridLayout(1,6)) ;
D2 = new JPanel();
D2.setLayout(new GridLayout(1,2)) ;
for (int j = 0; j <= Answer[0].length-1 ; j++)
Answer[0][j] = new JTextField(0) ;
Answer[0][j].setHorizontalAlignment(JTextField.CENTER);
Answer[0][j].setEditable(false) ;
D1.add(Answer[0][j]) ;
Display.add(D1) ;
Display.add(D2) ;
c.add(Display) ;
public void runClient()
try
{ socket=new Socket("localhost",8000);
DataInputStream in=new DataInputStream(socket.getInputStream());
int x=0;
int o=0;
try{
while(true)
while(trial_num<10)
x=in.readInt();
//System.out.println(x);
Output[trial_num][0].setText(String.valueOf(x));
o=in.readInt();
//System.out.println(o);
Output[trial_num][1].setText(String.valueOf(o));
for(int i=0;i<6;i++)
color[trial_num][i].setEnabled(false);
ok[trial_num].setEnabled(false);
trial_num++;
col_now=0;
if(x==6)
JOptionPane.showMessageDialog( null, "Congratulation, you've won the game !! " );
//ok[trial_num].setEnabled(false);
break;
if(trial_num<10)
{ for(int i=0;i<6;i++)
color[trial_num][i].setEditable(true);
count[i]=5;
ok[trial_num].setEnabled(true);
if(x!=6)
{ JOptionPane.showMessageDialog( null, "sorry you did not win the game");
temp=in.readUTF();
System.out.println(temp);
//temp=in.readUTF();
//System.out.println("can");
for(int i=0;i<6;i++)
System.out.println(i);
char a=temp.charAt(i);
int index=colorRange.indexOf(String.valueOf(a));
Answer[0][i].setBackground(colorName[index]);
trial_num=0;
for(int j=0;j<10;j++)
for(int k=0;k<6;k++)
color[j][k].setBackground(Color.white);
for(int j=0;j<10;j++)
for(int k=0;k<2;k++)
Output[j][k].setText(null);
for(int i=0;i<6;i++)
color[trial_num][i].setEditable(true);
count[i]=5;
ok[0].setEnabled(true);
catch(EOFException em){}
}catch(IOException ex){
System.out.println("Error:"+ex.toString());}
public void mouseClicked(MouseEvent e)
for(int i=0;i<6;i++)
if(e.getComponent()==color[trial_num][i])
{ col_now=i;
break;
count[col_now]=(count[col_now]+1)%6;
color[trial_num][col_now].setBackground(colorName[count[col_now]]);
public void mouseEntered(MouseEvent e)
public void mouseExited(MouseEvent e)
public void mouseReleased(MouseEvent e)
public void mousePressed(MouseEvent e)
public void actionPerformed(ActionEvent e)
try{
send();
}catch(IOException et){System.out.println("Error:"+et);}
public void send()throws IOException
DataOutputStream out=new DataOutputStream(socket.getOutputStream());
char cbuf[]=new char[6];
for(int i=0;i<6;i++)
cbuf[i]=colorRange.charAt(count[i]);
System.out.println(cbuf);
out.writeUTF(new String(cbuf));
/** Main method */
public static void main(String[] args) {
MasterMindClient frame = new MasterMindClient();
frame.setTitle("Master Mind");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(300,300) ;
frame.setSize(450, 450);
frame.setVisible(true);
frame.runClient();
} // end of classI notice that you have several hundred lines of GUI code there. None of them have anything to do with the problem you are trying to solve. So put them all aside and write a SMALL test program that does nothing but the little loop you are having a problem with. Shouldn't be more than 20 lines of code.
-
User defined rule for missing triples
Hi,
i would like to know if there is a way to define a user defined rule for triples that are not contained in a model. With curly brace syntax it could be something like this:
INSERT INTO mdsys.semr_validation_rb VALUES(
'test_rule',
'{?s ?p ?o. OPTIONAL{?s rdf:type ?t}}',
't is null',
'(?s <hasType> "false")',
null);
Unfortunately this is not working. Has anybody a suggestion to solve this problem with user defined rules?Hi,
This is related to the following post.
built-in primitives(noValue,remove) for user defined rules
Note that there is something you need to pay a bit attention to.
Say your original graph contains
:John :fatherOf :Mary
but not any type classification for :John (i.e. no match for {:John rdf:type ?t})
Assume you add the following triple according to the rule you described
(:John <hasType> "false")
Now, what happens if :John is classified as a :Person (or :Parent, :Father),
do you want to withdraw* :John <hasType> "false"?
Thanks,
Zhe -
Hi.
I created alert that is triggered via action. The alert now displays only some text that i defined. But now I would like to get in that text also the value of transaction number of task from witch alert was triggered.
I saw that there is the option on alerts to define container (SPRO > CRM > basic functions > alert management > define alert categories) but I don't now how to do it.
I added in container BOR object type BUS2000125 and in text the expression &PROCESS_TYPE.OBJECT_ID&, but looks like that is not enough.
Help needed.hi. There is no new note that I would know about. However I managed to solved the problem via steps from old note, but had to do quite a coding on Z version of TRIGGER_ALERT method.
This is my code source:
METHOD ZTRIGGER_ALERT .
DATA: lt_container TYPE swconttab,
ls_container TYPE swcont,
lv_kind_ref TYPE crmt_object_kind,
lv_guid_ref TYPE crmt_object_guid.
DATA: lt_head_guids TYPE crmt_object_guid_tab,
lt_item_guids TYPE crmt_object_guid_tab,
lt_req_obj TYPE crmt_object_name_tab,
ls_orderadm_h_ref TYPE crmt_orderadm_h_wrk,
lt_orderadm_h_ref TYPE crmt_orderadm_h_wrkt,
lv_header_ref TYPE crmt_object_guid,
ls_orderadm_i_ref TYPE crmt_orderadm_i_wrk,
lt_orderadm_i_ref TYPE crmt_orderadm_i_wrkt.
DATA: lv_message TYPE char80,
lv_preview TYPE char1.
DATA: lv_category TYPE salrtdcat,
lt_partner TYPE crmt_partner_external_wrkt,
ls_partner TYPE crmt_partner_external_wrk,
lt_recipients TYPE TABLE OF salrtsrcp,
ls_recipients LIKE LINE OF lt_recipients,
lv_guid_32 TYPE sysuuid_c.
INCLUDE crm_log_states_con.
INCLUDE crm_mode_con.
INCLUDE crm_object_names_con.
INCLUDE crm_object_kinds_con.
INCLUDE com_partner_pft3.
* get parameter from reference object
CALL METHOD me->get_ref_object
EXPORTING
io_appl_object = io_appl_object
ip_action = ip_action
ip_preview = ip_preview
ii_container = ii_container
IMPORTING
ev_guid_ref = lv_guid_ref
ev_kind_ref = lv_kind_ref
et_container = lt_container
ev_preview = lv_preview.
* not relevant iv preview is active
IF NOT lv_preview IS INITIAL.
MESSAGE s007(crm_action).
EXIT.
ENDIF.
* fill guid of the source document
REFRESH: lt_head_guids, lt_item_guids.
IF lv_kind_ref EQ gc_object_kind-orderadm_h.
INSERT lv_guid_ref INTO TABLE lt_head_guids.
ELSEIF lv_kind_ref EQ gc_object_kind-orderadm_i.
INSERT lv_guid_ref INTO TABLE lt_item_guids.
ENDIF.
* fill requested object
INSERT gc_object_name-orderadm_h INTO TABLE lt_req_obj.
INSERT gc_object_name-orderadm_i INTO TABLE lt_req_obj.
INSERT gc_object_name-partner INTO TABLE lt_req_obj.
* read relevant itmes of the source document
CALL FUNCTION 'CRM_ORDER_READ'
EXPORTING
it_header_guid = lt_head_guids
it_item_guid = lt_item_guids
iv_only_spec_items = true
it_requested_objects = lt_req_obj
IMPORTING
et_orderadm_h = lt_orderadm_h_ref
et_orderadm_i = lt_orderadm_i_ref
et_partner = lt_partner
EXCEPTIONS
document_not_found = 1
error_occurred = 2
document_locked = 3
no_change_authority = 4
no_display_authority = 5
OTHERS = 6.
IF sy-subrc NE 0.
* write message into ppf-log
CALL METHOD cl_log_ppf=>add_message
EXPORTING
ip_problemclass = '2'
ip_handle = ip_application_log.
* set return status
rp_status = '2'.
EXIT.
ENDIF.
IF lv_kind_ref EQ gc_object_kind-orderadm_h.
lv_header_ref = lv_guid_ref.
ELSEIF lv_kind_ref EQ gc_object_kind-orderadm_i.
READ TABLE lt_orderadm_i_ref INTO ls_orderadm_i_ref INDEX 1.
lv_header_ref = ls_orderadm_i_ref-header.
* get business object to built URL
CALL FUNCTION 'CRM_ORDERADM_H_READ_OW'
EXPORTING
iv_orderadm_h_guid = lv_header_ref
IMPORTING
ev_object_type = ls_orderadm_h_ref-object_type
ev_logical_system = ls_orderadm_h_ref-logical_system
EXCEPTIONS
admin_header_not_found = 1
OTHERS = 2.
IF sy-subrc EQ 0.
ls_orderadm_h_ref-guid = lv_header_ref.
INSERT ls_orderadm_h_ref INTO TABLE lt_orderadm_h_ref.
ELSE.
* write message into ppf-log
CALL METHOD cl_log_ppf=>add_message
EXPORTING
ip_problemclass = '2'
ip_handle = ip_application_log.
* set return status
rp_status = '2'.
EXIT.
ENDIF.
ENDIF.
* fill alert category
READ TABLE lt_container INTO ls_container
WITH KEY element = 'CATEGORY'.
IF sy-subrc EQ 0.
lv_category = ls_container-value.
ENDIF.
* check mandatory fields
IF lv_category IS INITIAL.
* write message into ppf-log
MESSAGE ID 'CRM_ACTION' TYPE 'E' NUMBER 004
WITH 'CATEGORY' INTO lv_message.
CALL METHOD cl_log_ppf=>add_message
EXPORTING
ip_problemclass = '2'
ip_handle = ip_application_log.
* set return status
rp_status = '2'.
EXIT.
ENDIF.
* now filter the employees.
LOOP AT lt_partner INTO ls_partner
WHERE partner_pft EQ gc_partner_pft-employee.
CLEAR: ls_recipients.
CALL FUNCTION 'BP_CENTRALPERSON_GET'
EXPORTING
iv_bu_partner_guid = ls_partner-bp_partner_guid
IMPORTING
ev_username = ls_recipients-uname
EXCEPTIONS
no_central_person = 1
no_business_partner = 2
no_id = 3
OTHERS = 4.
IF sy-subrc EQ 0 AND
ls_recipients-uname IS NOT INITIAL.
INSERT ls_recipients INTO TABLE lt_recipients.
ENDIF.
ENDLOOP.
* don't send the alert twice to the same user
SORT lt_recipients BY uname.
DELETE ADJACENT DUPLICATES FROM lt_recipients COMPARING uname.
* supply key information
READ TABLE lt_orderadm_h_ref INTO ls_orderadm_h_ref INDEX 1.
IF sy-subrc EQ 0.
lv_guid_32 = ls_orderadm_h_ref-guid.
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'OBJKEY_GUID'
field = lv_guid_32
TABLES
container = lt_container
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'OBJKEY_BOR_OBJECT'
field = lv_guid_32
TABLES
container = lt_container
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'OBJKEY_BOR_OBJECT_TYPE'
field = ls_orderadm_h_ref-object_type
TABLES
container = lt_container
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'OBJKEY_LOGICAL_SYSTEM'
field = ls_orderadm_h_ref-logical_system
TABLES
container = lt_container
EXCEPTIONS
OTHERS = 1.
ENDIF.
* trigger alert
*{ INSERT CRDK903440 1
data: object_id(10) type c.
data: lt_date_wrkt type CRMT_DATES_WRKT.
data: wa_date_wrk type CRMT_DATES_WRK.
data: lt_date type CRMT_DATE_WRKT.
data: wa_date type CRMT_DATE_WRK.
data: ZTASK_PLAN type SC_DATEFRO.
data: ZTASK_REQUIR type SC_DATEFRO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = ls_orderadm_h_ref-object_id
IMPORTING
OUTPUT = object_id.
* document number
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'OBJECT_ID'
field = object_id
tables
container = lt_container
EXCEPTIONS
TYPE_CONFLICT = 1
OTHERS = 2.
*document description
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'OBJECT_DESCRIPTION'
field = ls_orderadm_h_ref-description
tables
container = lt_container
EXCEPTIONS
TYPE_CONFLICT = 1
OTHERS = 2.
*document dates
refresh lt_date_wrkt.
CALL FUNCTION 'CRM_DATES_READ_DB'
EXPORTING
IV_REF_GUID = ls_orderadm_h_ref-guid
IV_REF_KIND = 'A'
IMPORTING
ET_DATE_WRKT = lt_date_wrkt
EXCEPTIONS
PARAMETER_ERROR = 1
ENTRY_DOES_NOT_EXIST = 2
AT_LEAST_ONE_RECORD_NOT_FOUND = 3
OTHERS = 4.
refresh lt_date.
CALL FUNCTION 'CRM_DATES_READ_SINGLE_OW'
EXPORTING
iv_ref_guid = ls_orderadm_h_ref-guid
iv_ref_kind = 'A'
* IS_LOGICAL_DATE_KEY =
IMPORTING
* ES_DATE_WRK =
ET_DATE_WRK = lt_date
EXCEPTIONS
LINK_DOES_NOT_EXIST = 1
ENTRY_DOES_NOT_EXIST = 2
OTHERS = 3.
clear wa_date.
read table lt_date
with key APPT_TYPE = 'ORDERPLANNED'
into wa_date.
ZTASK_PLAN = wa_date-date_from.
if wa_date is initial.
clear wa_date_wrk.
read table lt_date_wrkt
with key APPT_TYPE = 'ORDERPLANNED'
into wa_date_wrk.
ZTASK_PLAN = wa_date_wrk-date_from.
endif.
clear wa_date.
read table lt_date
with key APPT_TYPE = 'ZTASK_REQUIR'
into wa_date.
ZTASK_REQUIR = wa_date-date_from.
if wa_date is initial.
clear wa_date_wrk.
read table lt_date_wrkt
with key APPT_TYPE = 'ZTASK_REQUIR'
into wa_date_wrk.
ZTASK_REQUIR = wa_date_wrk-date_from.
endif.
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'ORDERPLANNED'
field = ZTASK_PLAN
tables
container = lt_container
EXCEPTIONS
TYPE_CONFLICT = 1
OTHERS = 2.
CALL FUNCTION 'SWC_ELEMENT_SET'
EXPORTING
element = 'ZTASK_REQUIR'
field = ZTASK_REQUIR
tables
container = lt_container
EXCEPTIONS
TYPE_CONFLICT = 1
OTHERS = 2.
*} INSERT
CALL FUNCTION 'SALRT_CREATE_API'
EXPORTING
ip_category = lv_category
ip_wait_on_commit = false
TABLES
it_recipients = lt_recipients
it_container = lt_container
EXCEPTIONS
alert_category_unknown = 1
alert_no_recipients = 2
alert_error_unknown = 3
destination_undefined = 4
communication_failure = 5
system_failure = 6
OTHERS = 7.
IF sy-subrc NE 0.
* write message into ppf-log
CALL METHOD cl_log_ppf=>add_message
EXPORTING
ip_problemclass = '2'
ip_handle = ip_application_log.
* set return status
rp_status = '2'.
EXIT.
ENDIF.
* register new document for saving
CALL METHOD me->register_for_save
EXPORTING
iv_source_header_guid = lv_header_ref
iv_recursive_det = false
ii_container = ii_container
ip_application_log = ip_application_log
IMPORTING
rp_status = rp_status.
ENDMETHOD. " -
Error when defining successor for node 0000000198
Hello ,
We are using leave request service on ESS portal.
From last few days we are getting error like " Error when defining successor for node 0000000198 "
All agents are assigned properly and also v have checked PFTC setting for Workflow.
the method which are using is Synchrounous.
this error is nt coming perticulary for one employee but it is coming for sick leave workflow.
Please help
thanksHi,
This is a binding issue between the workflow container and the task
container because we can see the text in the workflow container but
it is empty in the task container.
Our proposed solution is to go into the Dev or QAS environment and
regenerate the binding between the workflow and this particular task.
We will test and if this works, this will resolve issue. -
I've made custom User and UserStore classes.
Now I'm trying to register or login with a user, but I get the error
'Incorrect number of arguments supplied for call to method Boolean Equals(System.String, System.String, System.StringComparison)'
The error is on line 411:
Line 409: }
Line 410: var user = new User() { UserName = model.Email, Email = model.Email };
--> Line 411: IdentityResult result = await UserManager.CreateAsync(user);
Line 412: if (result.Succeeded)
Line 413: {
The problem is that I can't really debug UserManager's methods, because it is in a closed DLL.
I get this same error on
UserManager.FindAsync(user), UserManager.CreateAsync(user,password), UserManager.Create(User user)
Now the error doesn't occur when I log in with an External Login, like Google, which also uses methods from UserManager. Entering the email works
as well, but when the user has to be created from an External Login with the inserted email, it gives the CreateAsync error
too.
How can I fix this? Do I need to create my own UserManager? Or do I need another solution entirely?
Packages (relevant):
package id="Microsoft.AspNet.Mvc" version="5.1.2"
id="Microsoft.Owin" version="2.1.0"
id="Microsoft.AspNet.Identity.Core" version="2.0.1"
UserStore.cs
public class UserStore :
IUserStore<User, int>,
IUserPasswordStore<User, int>,
IUserSecurityStampStore<User, int>,
IUserEmailStore<User, int>,
IUserLoginStore<User, int>
private readonly NFCMSDbContext _db;
public UserStore(NFCMSDbContext db)
_db = db;
public UserStore()
_db = new NFCMSDbContext();
#region IUserStore
public Task CreateAsync(User user)
if (user == null)
throw new ArgumentNullException("user");
_db.Users.Add(user);
_db.Configuration.ValidateOnSaveEnabled = false;
return _db.SaveChangesAsync();
public Task DeleteAsync(User user)
if (user == null)
throw new ArgumentNullException("user");
_db.Users.Remove(user);
_db.Configuration.ValidateOnSaveEnabled = false;
return _db.SaveChangesAsync();
public Task<User> FindByIdAsync(int userId = 0)
int userid;
if (userId == 0)
throw new ArgumentNullException("userId");
return _db.Users.Where(u => u.UserId == userId).FirstOrDefaultAsync();
User.cs
public class User : IUser<int>
public User()
UserLogins = new List<UserLogin>();
public int UserId { get; set; }
public string UserName { get; set; }
public string PasswordHash { get; set; }
public string SecurityStamp { get; set; }
public string Email {get; set; }
public bool IsEmailConfirmed { get; set; }
int IUser<int>.Id
get { return UserId; }
public ICollection<UserLogin> UserLogins { get; private set; }
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<User, int> manager)
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
Startup.Auth.cs
public partial class Startup
// For more information on configuring authentication, please visit http://go.microsoft.com/fwlink/?LinkId=301864
public void ConfigureAuth(IAppBuilder app)
// Configure the db context and user manager to use a single instance per request
app.CreatePerOwinContext(NFCMSDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
// Enable the application to use a cookie to store information for the signed in user
// and to use a cookie to temporarily store information about a user logging in with a third party login provider
// Configure the sign in cookie
app.UseCookieAuthentication(new CookieAuthenticationOptions
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, User, int>(
validateInterval: TimeSpan.FromMinutes(20),
regenerateIdentityCallback: (manager, user) => user.GenerateUserIdentityAsync(manager),
getUserIdCallback: (id) => (Int32.Parse(id.GetUserId())))
// Use a cookie to temporarily store information about a user logging in with a third party login provider
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); (...)
Any help or ideas are greatly appreciated!
Kind regards,
NilsHi,
According to your description, I am afraid your problem is out of support in C# forum. For ASP.NET question, please go to
ASP.NET Forum to post your thread.
Best Wishes!
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click
HERE to participate the survey. Thanks<br/> MSDN Community Support<br/> <br/> Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and
makes it easier for other visitors to find the resolution later. -
Urgent clearing data in container for free text
I HAVE A CONTAINER FOR FREE TEXT.
I HAVE A CREATE BUTTON IN MY SCREEN EWHEN I PRESS CREATE IT ASKD FOR ID AND FREE TEXT THEN I SAVE AND IT GETS SAVED IN A ZTALE TABLE.
WHEN AFTER SAVING IT I GO TO INITIAL SCREEN AND PRESS CREATE AGAIN THEN IT ASKS FOR ID AND IN THE CONTAINER I SEE THE FPREVIOUS TEXT.
CAN YOU GUYS LET ME KNOW AS TO WHAT I NEED TO DO.
I TREID CLEARING AND REFRESHING MYTABLE WHICH I HAVE USED IN THE FOLLOWING CODE.
pbo
if editor is initial.
CREATE OBJECT TEXTEDIT_CUSTOM_CONTAINER
EXPORTING
CONTAINER_NAME = 'TEXTEDITOR1'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5.
IF SY-SUBRC NE 0.
add your handling
ENDIF.
CREATE OBJECT EDITOR
EXPORTING
PARENT = TEXTEDIT_CUSTOM_CONTAINER
WORDWRAP_MODE = CL_GUI_TEXTEDIT=>WORDWRAP_AT_FIXED_POSITION
WORDWRAP_TO_LINEBREAK_MODE = CL_GUI_TEXTEDIT=>FALSE
EXCEPTIONS
OTHERS = 1.
refresh mytable.
call METHOD editor->SET_TOOLBAR_MODE
EXPORTING TOOLBAR_MODE = 0.
*call METHOD editor->SET_ENABLE
*EXPORTING ENABLE = ' '.
CALL METHOD editor->set_readonly_mode
EXPORTING
readonly_mode = 1.
ENDIF.
CLEAR MYTABLE.
FREE MYTABLE.
endif.
IF SY-SUBRC NE 0.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING
TITEL = V_REPID "--> program name
TXT2 = SPACE
TXT1 = 'Error in flush'.
ENDIF.
tHANKS
let me know
swathiFor example, this program works really well with saving long text using the SAVE_TEXT function. Here you need to create the object/id in SE75. For this program you enter the id on the right like 999999 and enter the text on the left, execute and the text is saved, now change the id to 999998 and hit enter, notice the text is blank, now enter 999999 again, notice the text for this id has come back, this is because the program uses READ_TEXT to retrieve the text.
report zrich_0001.
data:
dockingleft type ref to cl_gui_docking_container,
text_editor type ref to cl_gui_textedit,
repid type syrepid.
data: begin of header.
include structure thead.
data: end of header.
data: begin of lines occurs 0.
include structure tline.
data: end of lines.
data: textlines type table of tline-tdline,
wa_text type tline-tdline.
data: xthead type thead.
parameters: p_id(10) type c.
at selection-screen.
if p_id is initial.
message e001(00) with 'Enter an ID'.
endif.
at selection-screen output.
repid = sy-repid.
if dockingleft is initial.
create object dockingleft
exporting repid = repid
dynnr = sy-dynnr
side = dockingleft->dock_at_left
extension = 300.
create object text_editor
exporting
parent = dockingleft.
endif.
if p_id <> space.
xthead-tdobject = 'ZPT_DET'.
xthead-tdid = 'Z001'.
xthead-tdname = p_id.
clear lines. refresh lines.
call function 'READ_TEXT'
exporting
id = xthead-tdid
language = sy-langu
name = xthead-tdname
object = xthead-tdobject
tables
lines = lines
exceptions
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
others = 8.
clear textlines.
loop at lines.
wa_text = lines-tdline.
append wa_text to textlines.
endloop.
endif.
call method text_editor->set_text_as_r3table
exporting
table = textlines
exceptions
others = 1.
start-of-selection.
call method text_editor->get_text_as_r3table
importing
table = textlines
exceptions
others = 1.
* Set SAPscript Header
clear header.
header-tdname = p_id . "Name
header-tdobject = 'ZPT_DET'. "Object
header-tdid = 'Z001'. "Id
header-tdspras = sy-langu.
* Move text from container to function module table
clear lines. refresh lines.
loop at textlines into wa_text .
lines-tdline = wa_text.
append lines .
endloop.
call function 'SAVE_TEXT'
exporting
client = sy-mandt
header = header
tables
lines = lines
exceptions
id = 1
language = 2
name = 3
object = 4
others = 5.
Yes, this is implemented using a selection screen, but the same principals apply and this can be easily converted to a dynpro application.
Regards,
Rich Heilman
Maybe you are looking for
-
Null pointer Exception with Float.parseFloat
I need to assign a float value from a database to a variable recurrently throughout a while loop. but i am getting a null pointer exception error: while ( rs.next() ) out.println("<TR>"); float corr = Float.parseFloat((String) request.
-
Where can i buy a rubber bottom cover for my white macbook?
rubber backing off bottom cover has come away, no longer under warranty mac doctor store nearby wont just sell me the part, want me to pay over $100 labour to install it (8 screws removed and replaced) Anyone know if/where i can buy a part to install
-
Hi All, We have workflow scenario like this 1.Each step has a workflow approval limit for 5 days.If within 5 days the specified reviewer doesn't approve .Then mail will be notified to the respective reviewers and manager as well. For this we in the u
-
Office:mac 2008 Word Question
We just purchased Office:mac 2008 Home and Student Edition. I thought I could convert text to Chinese; however, it is not highlighted as an option (greyed out). Does anyone know how I can activate this?
-
Can I download apps to your apple product using iTunes on the computer?
Is it possible to download apps on itunes using the computer?