1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
|
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using SAPFunctionsOCX;
using System.Threading;
namespace testSAP
{
/// <summary>
/// Description résumée de Service1
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// Pour autoriser l'appel de ce service Web depuis un script à l'aide d'ASP.NET AJAX, supprimez les marques de commentaire de la ligne suivante.
// [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public void HelloWorld()
{
ParameterizedThreadStart parmStart =
new ParameterizedThreadStart(ExecuteSAP);
Thread tr = new Thread(parmStart);
tr.TrySetApartmentState(ApartmentState.STA);
tr.Start();
}
private void ExecuteSAP(object test)
{
SAPFunctionsOCX.SAPFunctions functions = new SAPFunctionsOCX.SAPFunctions();
SAPLogonCtrl.SAPLogonControl saplogon = new SAPLogonCtrl.SAPLogonControl();
SAPLogonCtrl.Connection connection;
SAPFunctionsOCX.Function function;
saplogon.System = "NESSIE PEOPLE - PRODUCTION - P02";
saplogon.Client = "700";
saplogon.User = "FR20400";
saplogon.Password = "xxxxxx";
saplogon.Language = "EN";
connection = (SAPLogonCtrl.Connection)saplogon.NewConnection();
connection.Logon(0, true);
try
{
functions.Connection = connection;
function = (SAPFunctionsOCX.Function)functions.Add("Z_RFC_CALL_TRANSACTION");
SAPFunctionsOCX.Parameter exp_tcode = (SAPFunctionsOCX.Parameter)function.get_Exports("TRANCODE");
exp_tcode.Value = "Z_SAP_QUERY_CALL";
SAPFunctionsOCX.Structure exp_opt=(SAPFunctionsOCX.Structure)function.get_Exports("I_OPTIONS");
exp_opt["DISMODE"] = "N"; //"A" '"E","N"
exp_opt["UPDMODE"] = "S";
exp_opt["DEFSIZE"] = "X";
exp_opt["RACOMMIT"] = "X";
SAPTableFactoryCtrl.Tables tbls = (SAPTableFactoryCtrl.Tables)function.Tables;
SAPTableFactoryCtrl.Table tbl_bdcresult = (SAPTableFactoryCtrl.Table)tbls["O_MSGTABLE"];
SAPTableFactoryCtrl.Table tbl_bdcdata = (SAPTableFactoryCtrl.Table)tbls["BDCTABLE"];
SAPTableFactoryCtrl.Row row_bdcdata;
//Jusque là ça marche
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["PROGRAM"] = "ZSAP_QUERY_CALL"; //ça plante sur cette ligne
row_bdcdata["DYNPRO"] = "1000";
row_bdcdata["DYNBEGIN"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "P_WSID";
row_bdcdata["FVAL"] = "";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "P_UGROUP";
row_bdcdata["FVAL"] = "HR_FR";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "P_QUERY";
row_bdcdata["FVAL"] = "STAFF";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "P_VARI";
row_bdcdata["FVAL"] = "AWL";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "BDC_OKCODE";
row_bdcdata["FVAL"] = "=ONLI";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["PROGRAM"] = "AQQO" + "HR_FR" + new String('=',7) + "STAFF" + new String('=',9);
row_bdcdata["DYNPRO"] = "1000";
row_bdcdata["DYNBEGIN"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "%DOWN";
row_bdcdata["FVAL"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "BDC_OKCODE";
row_bdcdata["FVAL"] = "=ONLI";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["PROGRAM"] = "SAPLAQDW";
row_bdcdata["DYNPRO"] = "200";
row_bdcdata["DYNBEGIN"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "RLGRAP-FILETYPE";
row_bdcdata["FVAL"] = "DAT";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "RLGRAP-FILENAME";
row_bdcdata["FVAL"] = @"D:\Staff.txt";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "RSAQDOWN-COLUMN";
row_bdcdata["FVAL"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "BDC_OKCODE";
row_bdcdata["FVAL"] = "=SEND";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["PROGRAM"] = "AQQO" + "HR_FR" + new String('=', 7) + "STAFF" + new String('=', 9); ;
row_bdcdata["DYNPRO"] = "1000";
row_bdcdata["DYNBEGIN"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "BDC_OKCODE";
row_bdcdata["FVAL"] = "/EE";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["PROGRAM"] = "ZSAP_QUERY_CALL";
row_bdcdata["DYNPRO"] = "1000";
row_bdcdata["DYNBEGIN"] = "X";
row_bdcdata = (SAPTableFactoryCtrl.Row)tbl_bdcdata.AppendRow();
row_bdcdata["FNAM"] = "BDC_OKCODE";
row_bdcdata["FVAL"] = "/EE";
function.Call();
}
finally
{
connection.Logoff();
}
}
}
} |
Partager