用NCO調(diào)用RFC

需要的工具:
開(kāi)發(fā)工具:Microsoft Visual Studio 2010 C#環(huán)境
NCO3.0:sapnco30dotnet40P_8-20007347.zip(VS2010環(huán)境下必須這個(gè)版本)
可到此下載:http://download.csdn.net/detail/szlaptop/4635144
數(shù)據(jù)庫(kù):ORACLE10g

示例目的:將Oracle的某表數(shù)據(jù)通過(guò)RFC插入SAP自建表抬闯。

第一步:在SAP里自建表
進(jìn)入SAP界面:使用T- CODE:SE11 打開(kāi)建表界面:表名為:ZCHANNEL_MESSAG

Paste_Image.png

自建如下表:(詳細(xì)建表過(guò)程略)溶握,針對(duì)自身業(yè)務(wù)蒸播,命名關(guān)鍵字段。



第二步:針對(duì)自建表ZCHANNEL_MESSAG創(chuàng)建RFC胀屿。
使用T- CODE:SE37 打開(kāi)建RFC界面:命名為:ZCHANNEL_RFC_MESSAGE


RFC如下表:(建立RFC詳細(xì)過(guò)程略)宿崭,在TABLE參數(shù)里設(shè)置IT_CHANNELLIKE 剛才自建的表ZCHANNEL_MESSAG葡兑。

Paste_Image.png

在EXPORT里設(shè)置出參R_SUBRC.

Paste_Image.png

在SOURCE CODE里寫(xiě)代碼:


[csharp] view plain copy

IF IT_CHANNEL[] IS NOT INITIAL.
MODIFY ZCHANNEL_MESSAG FROM TABLE IT_CHANNEL[].
IF SY-SUBRC = 0.
R_SUBRC = 'OK'.
ENDIF.
ENDIF.
ENDFUNCTION.

到此在SAP這邊的工作已經(jīng)就緒。

第三步:接下來(lái)房资,我們?cè)趏racle10g下建表WW_TRANS:與SAP自建表字段對(duì)應(yīng)轰异。

[sql] view plain copy

create table WW_TRANS
(
WW_TXDATE VARCHAR2(50),
WW_PLUID VARCHAR2(50),
WW_QTYSOLD VARCHAR2(1000),
WW_AMOUNT VARCHAR2(50),
WW_TELEPHONE VARCHAR2(50)
)

第四步:剩下的都在VS2010下完成:

打開(kāi)VS2010新建一個(gè)WINDOWS窗體應(yīng)用程序:WindowsFormsApplication2

Paste_Image.png

拖動(dòng)一個(gè)按鈕控件到主窗體:

Paste_Image.png

在解決方案資源管理器搭独,引用里引用NCO3.0的sapnco.dll和sapnco_utils

Paste_Image.png

右擊項(xiàng)目名稱WindowsFormsApplication2牙肝,點(diǎn)擊“屬性”配椭,打開(kāi)屬性面板:將目標(biāo)框架里默認(rèn)的.NET Framework 4 Client Profile 改為:.NET Framework 4。(很重要)

Paste_Image.png

在解決方案資源管理器里打開(kāi)配置文件APP.CONFIG,配置如下:

Paste_Image.png

[html] view plain copy

<?xmlversionxmlversion="1.0"?>
<configuration>
<configSections>
<sectionGroupnamesectionGroupname="SAP.Middleware.Connector">
<sectionGroupnamesectionGroupname="ClientSettings">
<sectionnamesectionname="DestinationConfiguration"type="SAP.Middleware.Connector.RfcDestinationConfiguration,sapnco"/>
</sectionGroup>
</sectionGroup>
</configSections>

<SAP.Middleware.Connector>  
    <ClientSettings>  
        <DestinationConfiguration>  
            <destinations>  
                <addNAMEaddNAME="DEV"USER="WUWEI"PASSWD="WUWEI"CLIENT="500"  
                     LANG="EN"ASHOST="198.16.0.66"SYSNR="00"  
                     MAX_POOL_SIZE="10"IDLE_TIMEOUT="10"/>  
            </destinations>  
        </DestinationConfiguration>  
    </ClientSettings>  
</SAP.Middleware.Connector>  

<startup>  
    <supportedRuntimeversionsupportedRuntimeversion="v4.0"sku=".NETFramework,Version=v4.0"/>  
</startup>  

</configuration>

雙擊剛拖動(dòng)的Button1按鈕進(jìn)入代碼編輯器:
手工引用:using SAP.Middleware.Connector;

Paste_Image.png

因?yàn)槭褂玫氖?a target="_blank" rel="nofollow">oracle數(shù)據(jù)庫(kù),所以也必須引用oracle10g的System.Data.OracleClient.dll瘾境,只要安裝了oracle10g客戶端
usingSystem.Data.OracleClient;

Paste_Image.png

接下來(lái)看代碼:

[csharp] view plain copy

OracleDataReader reader = sqlCmd.ExecuteReader();
//讀¨¢取¨?配?置?文?件t信?息?é迷守,ê?建?§立¢?é與??SAP連¢?接¨?
RfcDestination SapRfcDestination = RfcDestinationManager.GetDestination("DEV");

        RfcRepository SapRfcRepository =SapRfcDestination.Repository;  
        // Create and invhuoke function moduleZCHANNEL_RFC_MESSAGE  
        IRfcFunction myfun =SapRfcRepository.CreateFunction("ZCHANNEL_RFC_MESSAGE");  

        // Set some input values for the structure.  
        IRfcStructure import = null;  
        IRfcTable table = myfun.GetTable("IT_CHANNEL");  
        while (reader.Read())  
        {  
            import = SapRfcRepository.GetStructureMetadata("ZCHANNEL_MESSAG").CreateStructure();  
            import.SetValue("WW_TXDATE",reader.GetString(0));  
            import.SetValue("WW_PLUID",reader.GetString(1));  
            import.SetValue("WW_QTYSOLD",reader.GetString(2));  
            import.SetValue("WW_AMOUNT",reader.GetString(3));  
            import.SetValue("WW_TELEPHONE",reader.GetString(4));  
            table.Insert(import);  
        }  
        myfun.Invoke(SapRfcDestination); //執(zhí)??行D函?¥數(shù)oy  
        string RETURNStr = myfun.GetString("R_SUBRC");  
        MessageBox.Show(RETURNStr);  

執(zhí)行結(jié)果:

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市眨业,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卓嫂,老刑警劉巖聘殖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異餐禁,居然都是意外死亡突照,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)末盔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)陨舱,“玉大人版仔,你說(shuō)我怎么就攤上這事误墓∶栈牛” “怎么了链峭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)熙卡。 經(jīng)常有香客問(wèn)我励饵,道長(zhǎng),這世上最難降的妖魔是什么颓鲜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任甜滨,我火速辦了婚禮瘤袖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘捂敌。我一直安慰自己,他們只是感情好泡嘴,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布酌予。 她就那樣靜靜地躺著奖慌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上击困,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天广凸,我揣著相機(jī)與錄音谅海,去河邊找鬼蹦浦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛侥袜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枫吧,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼九杂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼宣蠕!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起镀层,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤思币,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后惶我,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體博投,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年听怕,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了尿瞭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翅睛。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡黑竞,死狀恐怖很魂,靈堂內(nèi)的尸體忽然破棺而出檐涝,到底是詐尸還是另有隱情,我是刑警寧澤谁榜,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布惰爬,位于F島的核電站,受9級(jí)特大地震影響撕瞧,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巩掺,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一胖替、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧独令,春花似錦好芭、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至厕诡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間信柿,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工渔嚷, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留形病,地道東北人霞幅。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像途乃,于是被迫代替她去往敵國(guó)和親扔傅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • 【2017年最新】? iOS面試題及答案 設(shè)計(jì)模式是什么试读? 你知道哪些設(shè)計(jì)模式荠耽,并簡(jiǎn)要敘述? 設(shè)計(jì)模式是一種編碼經(jīng)...
    紫色冰雨閱讀 598評(píng)論 0 1
  • MVC 具有什么樣的優(yōu)勢(shì)倘屹,各個(gè)模塊之間怎么通信慢叨,比如點(diǎn)擊 Button 后 怎么通知 Model?[iOS] MV...
    Lost_693d閱讀 149評(píng)論 0 1
  • 酷暑的余威還在哄辣,已是過(guò)渡 天漸涼赠尾,心不躁 豐收的期盼日濃 不得已的守舊,最是無(wú)奈 程序化的陳詞爛調(diào) 無(wú)以觸及季節(jié)的...
    橘子sandglass閱讀 193評(píng)論 0 0
  • 這是在OC中利用數(shù)組和字典的相互套用解析的当窗,附一張思維圖。
    Miss_差不多閱讀 762評(píng)論 0 0
  • 1 小時(shí)候巫员,媽媽指著律政佳人里面的白骨精曹穎對(duì)KK說(shuō),做個(gè)學(xué)霸長(zhǎng)大后就可以變成這個(gè)樣子赶掖。于是,她努力地學(xué)習(xí)奢赂,以一種...
    bnngoo冰狗閱讀 162評(píng)論 0 0