Looping through business partners

I need to run a query that shows which BPs have NOT had a recent delivery.  Therefore, I am searching for values not present.  I have decided to run a subquery pulling up all deliveries within the last month and then looping through all BPs to see if they are in that query.  If not, I want to display their name as part of the result.  I am not sure how to loop through BPs in SQL using Query Generator.  Any idea of syntax?
Thank you in advance for you help!
Jacquie

I'm not sure about this, but I guess that you can't set parameters in that second SELECT at all.
This works:
SELECT T0.CardName FROM OCRD T0
Where T0.CardCode Not in
(SELECT T0.CardCode FROM OINV T1
WHERE datediff(Day,T1.DocDate, getdate())<0)
This doesn't: (I changed only: getdate())<'[%0]')
SELECT T0.CardName FROM OCRD T0
Where T0.CardCode Not in
(SELECT T0.CardCode FROM OINV T1
WHERE datediff(Day,T1.DocDate, getdate())<'[%0]')
Regarding your SQL. From the syntax point of view:
- include a space between "NOT_in"
- maybe you should eliminate T0.DocDate from the second SELECT
HTH
Juha

Similar Messages

  • Can FI-CAx be used for making outgoing payments to business partners

    Hi All,
    Can we use the installment plan in FI-CA for the outgoing payments to business partners. Our company has lot of lease contracts and these contracts have payments due to be paid on a monthly, quarterly, semi-annual, and annual basis. All these lease contracts are managed in SAP Real estate Flexible objects. We want to use FI-CAx for making payments to these contracts and hence we are looking for integration between FI-CA and RE-flexible objects.
    From what I heard FI-CA is a receivables module and is not best suited for payables, so please let me know if we can use the outgoing payment plan and installment plan in FI-CA for making payments to business partners.
    This is a bottleneck in our implementation. So please help me asap.
    Thanks in advance. Points will be awarded to all the useful solutions.
    Santosh

    Hi Santhosh,
    FYI my answers below
    Can we use the instalment plan in FI-CA for the outgoing payments to business partners.
    u2022I would say Yeah. ofcourse there is a way to do it provided you have created existing OI in Real estate in FI-CAX. This is because, weu2019d Refund money to the customer. In the same token I do not see any problem in paying monies to them!!!!
    u2022You need to create your RE-FX contracts unto FICA as Contract Accounts <1:1 ratio>.
    Our company has lot of lease contracts and these contracts have payments due to be paid on a monthly, quarterly, semi-annual, and annual basis. All these lease contracts are managed in SAP Real estate Flexible objects. We want to use FI-CAx for making payments to these contracts and hence we are looking for integration between FI-CA and RE-flexible objects.
    u2022Assuming that you have your RE-Fx data unto FICA, next step is to configure Instalment plans < monthly, quarterly, semi-annual, and annual >.
    u2022Next you create Instalment plans for the contract accounts <FICA> as required.
    u2022Now, if you want to pay the amount, you need to attach outgoing payment method in Contract Account, Configure your Payment program.
    u2022Now run your Payment Run <FPY1 =4.72; FPYS = ECC>.
    u2022All the OI would be cleared. If you want to send the file to the bank, you can do so or you can also issue cheques.
    From what I heard FI-CA is a receivables module and is not best suited for payables, so please let me know if we can use the outgoing payment plan and instalment plan in FI-CA for making payments to business partners.
    u2022Look above.
    OI = Open Item
    Other points you need to consider:
    1. Are the amounts in RE-FX consistent <equal through out the installment plans>?
    2. Do you want to create separate Installment plans in FICA?
    3. If yes, above should be helpful.
    4. If not, identify an Interface between RE-FX and FICA.
    5. What are your plans to close the Contracts in RE-FX once all the Installment plans are being paid in FICA?
    6. Do you want to establish an Interface between RE-FX and FICA so that data would be transferred bt them automatically?
    7.Is point no 6 one way or 2 ways <i.e RE-FX to FICA and vice versa>
    8. What is the volume and frequency?
    9.Other points if any
    Does this helps?
    Rgds
    Rajendra

  • Looping through an array to get the index for each measure in a combo box

    Hi folks,
    I am working on a web application that has two combo boxes, one for year (called yearcombo) and for measures (called myURL) for that selected year, and also two radiobuttons (in radioBtnGroup). I have two years and a bunch of measure for each year. I  have a map tool tip that when you mouse over the county you see a measure for that specific year. However I have a bunch of measures for each year and I want to be able to loop through the measures (which are in an array collection inside a combobox) so my "if" expression can find every selectedIndex and bring me the tool tip for that selected measure for that selected radio button. Right now I would have to create if statements for each measure (each selectedIndex inside the myURL combobox)and each radiobutton (inside the radioBtnGroup) instead of creating a if expression to get a map tip tool for each measure. I know I would have to create a loop to search for these indexes and enter that in the if expression and also change the graphic.attributes to reflect the right measure or index selected. Do you API for Flex wizards  can give me any tips on how to code this according to my code below ? Any  help is greatly appreciated! (the print scree is attached)
    Below is the code snippet:
    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 0)
    fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
    var graphic:Graphic = Graphic(event.currentTarget);
    graphic.symbol = mouseOverSymbol;
    var htmlText:String = graphic.attributes.htmlText;
    var textArea:TextArea = new TextArea();
    try{
    textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirIndOut.toString()
    myMap.infoWindow.content=textArea
    myMap.infoWindow.label = graphic.attributes.NAME;
    myMap.infoWindow.closeButtonVisible = false;
    myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
    catch(error:Error) {
    trace("Caught Error: "+error);
    And below is the combo boxes with the arrays
    <mx:FormItem label="Year        :"  >
    <mx:ComboBox   id="yearcombo" selectedIndex="0" labelField="label" width="100%" change="changeEvt(event)"  >
    <mx:ArrayCollection id="year"  >
    <fx:Object label="2007"  year="2007" />
    <fx:Object label="2009"  year="2009" />
    </mx:ArrayCollection>
    </mx:ComboBox>
    </mx:FormItem>
    <mx:FormItem label="Measure:">
    <mx:ComboBox   id="myURL" selectedIndex="8" width="80%" mouseOver="clickEv2(event)" close="closeHandler(event)">
    <mx:ArrayCollection id="measures"   >
    <fx:Object id="forindout07" labeltext="2007 Forestry Industry Output" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_07_forest_industry_output" year="2007"  />
    <fx:Object id="foremp07" label="2007 Forestry Employment " value="RADIO_BUTTONS/TFEI_07_forest_employment" year="2007" />
    <fx:Object id="forlabinc07" label="2007 Forestry Labor Income " value="RADIO_BUTTONS/TFEI_07_forest_labincome" year="2007" />
    <fx:Object id="forindbustax07" label="2007 Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_07_forest_business_tax" year="2007" />
    <fx:Object id="forindout09" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_09_forest_industry_output" year="2009"  />
    <fx:Object id="foremp09" label="2009 Forestry Employment " value="RADIO_BUTTONS/TFEI_09_forest_employment" year="2009" />
    <fx:Object id="forlabinc09" label="2009 Forestry Labor Income " value="RADIO_BUTTONS/TFEI_09_forest_labincome" year="2009" />
    <fx:Object id="forindbustax09" label="2009 Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_09_forest_business_tax" year="2009" />
    <fx:Object id="blank" label=" "  />
    </mx:ArrayCollection>

    And here is the entire code
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application       
                    xmlns:fx="http://ns.adobe.com/mxml/2009"
                    xmlns:s="library://ns.adobe.com/flex/spark"
                    xmlns:mx="library://ns.adobe.com/flex/mx"
                    xmlns:esri="http://www.esri.com/2008/ags"
                    paddingBottom="8" paddingLeft="8"
                    paddingRight="8" paddingTop="8"
                    backgroundColor="0xffffff"
                    layout="vertical" >
        <!-- Start Declarations -->
    <fx:Declarations>
            <esri:SimpleFillSymbol id="mouseOverSymbol" alpha="0.5" color="0x808080">
                <esri:SimpleLineSymbol width="0" color="#000000"/>
            </esri:SimpleFillSymbol>
            <esri:SimpleFillSymbol id="defaultsym" alpha="0.01" color="#E0E0E0"   >
                <esri:SimpleLineSymbol width="1" color="#000000"/>
            </esri:SimpleFillSymbol>
        <!-- End Declarations -->
    </fx:Declarations>
        <fx:Script>
            <![CDATA[
                import com.esri.ags.Graphic;
                import com.esri.ags.SpatialReference;
                import com.esri.ags.esri_internal;
                import com.esri.ags.events.GraphicEvent;
                import com.esri.ags.geometry.Extent;
                import com.esri.ags.layers.ArcGISDynamicMapServiceLayer;
                import com.esri.ags.symbols.SimpleFillSymbol;
                import com.esri.ags.symbols.SimpleLineSymbol;
                import flash.utils.flash_proxy;
                import mx.collections.ArrayCollection;
                import mx.controls.Alert;
                import mx.controls.RadioButton;
                import mx.controls.TextArea;
                import mx.events.DropdownEvent;
                import mx.events.ItemClickEvent;
                import mx.rpc.Fault;
                import mx.rpc.events.FaultEvent;
                import flash.display.Sprite;
                import flash.events.ErrorEvent;
                import flash.events.MouseEvent;
                private function closeHandler(evt:DropdownEvent):void {
                    myLabel.text = ComboBox(evt.target).selectedItem.labeltext;
                private function loadLayerName():void
                    myLegend.layers = null;
                    layerPanel.removeAllChildren();
                    //loop through each layer and add as a radiobutton
                    for(var i:uint = 0; i < (dynamicLayer.layerInfos.length); i++)
                        var radioBtn:RadioButton = new RadioButton;
                        radioBtn.groupName = "radioBtnGroup";
                        radioBtn.value = i;
                        radioBtn.label = dynamicLayer.layerInfos[i].name;
                        if (dynamicLayer.layerInfos[i].name == "Direct Impact (Million $)")
                            radioBtn.label = "Direct Impact";
                        else if (dynamicLayer.layerInfos[i].name == "Total Impact (Million $)")
                        {radioBtn.label = "Total Impact";
                        else if (dynamicLayer.layerInfos[i].name == "Total Impact (Jobs)")
                        {radioBtn.label = "Total Impact";
                        else if (dynamicLayer.layerInfos[i].name == "Direct Impact (Jobs)")
                        {radioBtn.label = "Direct Impact";
                        else
                        {radioBtn.visible= false;
                        layerPanel.addChild(radioBtn);
                    /*     myDividerBox.getDividerAt(0).visible = false; */
                    //set the visible layer the first radio button
                     radioBtnGroup.selectedValue = 0;
                     dynamicLayer.visibleLayers = new ArrayCollection([0]);
                    myLegend.layers = [dynamicLayer];
                    myLegend.visible = true;
                private function radioClickHandler(event:ItemClickEvent):void
                    myLegend.layers = null;
                    // update the visible layers to only show the layer selected
                    dynamicLayer.visibleLayers = new ArrayCollection([event.index]);
                    myLegend.layers = [dynamicLayer];
                private function changeEvt(event:Event):void {
                if (yearcombo.selectedItem.year == "2007")
                    measures.filterFunction=filter1
                    measures.refresh()
                    myURL.dataProvider=measures
                else if (yearcombo.selectedItem.year == "2009")
                    measures.filterFunction=filter2
                    measures.refresh();
            public function filter1(item:Object):Boolean
                if (item.year=="2007") return true
                else return false
                public function filter2(item:Object):Boolean
                    if (item.year=="2009") return true
                    else return false
                private function clickEvt(event:Event):void {
                    if (yearcombo.selectedItem.year == "2007")
                        measures.filterFunction=filter3
                        measures.refresh()
                        myURL.dataProvider=measures
                    else if (yearcombo.selectedItem.year == "2009")
                        measures.filterFunction=filter4
                        measures.refresh();
                public function filter3(item:Object):Boolean
                    if (item.year=="2007") return true
                    else return false
                public function filter4(item:Object):Boolean
                    if (item.year=="2009") return true
                    else return false
                private function clickEv2(event:Event):void {
                    if (yearcombo.selectedItem.year == "2007")
                        measures.filterFunction=filter5
                        measures.refresh()
                    else if (yearcombo.selectedItem.year == "2009")
                        measures.filterFunction=filter6
                        measures.refresh();
                    else if (yearcombo.selectedItem.year == 2007 && myURL.selectedIndex==8)
                        myLegend.layers = null;
                        layerPanel.removeAllChildren();
                public function filter5(item:Object):Boolean
                    if (item.year=="2007") return true
                    else return false
                public function filter6(item:Object):Boolean
                    if (item.year=="2009") return true
                    else return false
                /* IF YOU WANT TO INCLUDE OTHER VALUES IN THE MAP TOOLTIP LIKE COUNTY NAME AND THE LABEL OF THE SELECTED ITEM
                if (myURL.selectedIndex==0)
                myTextArea.htmlText = "<b>County: </b>" + gr.attributes.NAME + "\n"
                + "<b>Measure: </b>" + myURL.selectedItem.label + gr.attributes.ForDirIndOut.toString()
                public function fLayer_graphicAddHandler(event:GraphicEvent):void
                    event.graphic.addEventListener(MouseEvent.MOUSE_OVER, onMouseOverHandler);
                    event.graphic.addEventListener(MouseEvent.MOUSE_OUT, onMouseOutHandler);
                public function onMouseOverHandler(event:MouseEvent):void
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 0)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                        textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirIndOut.toString()
                        myMap.infoWindow.content=textArea
                        myMap.infoWindow.label = graphic.attributes.NAME;
                        myMap.infoWindow.closeButtonVisible = false;
                        myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 1)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpIndOut.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 0)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirEmp.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 1)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpEmp.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 0)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirLabInc.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 1)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpLabInc.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2007" && myURL.selectedIndex == 3 )
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2007'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForIndirBusTax.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 0)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirIndOut.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 0 && radioBtnGroup.selectedValue == 1)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpIndOut.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 0)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirEmp.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 1 && radioBtnGroup.selectedValue == 1)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpEmp.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 0)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForDirLabInc.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 2 && radioBtnGroup.selectedValue == 1)
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForTotImpLabInc.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                    if (yearcombo.selectedItem.year == "2009" && myURL.selectedIndex == 3 )
                        fLayer.definitionExpression = "DATA_YEAR_TXT like '2009'"
                        var graphic:Graphic = Graphic(event.currentTarget);
                        graphic.symbol = mouseOverSymbol;
                        var htmlText:String = graphic.attributes.htmlText;
                        var textArea:TextArea = new TextArea();
                        try{
                            textArea.htmlText = myURL.selectedItem.label + graphic.attributes.ForIndirBusTax.toString()
                            myMap.infoWindow.content=textArea
                            myMap.infoWindow.label = graphic.attributes.NAME;
                            myMap.infoWindow.closeButtonVisible = false;
                            myMap.infoWindow.show(myMap.toMapFromStage(event.stageX, event.stageY));}
                        catch(error:Error) {
                            trace("Caught Error: "+error);
                public function onMouseOutHandler(event:MouseEvent):void
                    var gr:Graphic = Graphic(event.target);
                    gr.symbol = defaultsym;
                    myMap.infoWindow.hide();
            ]]>
        </fx:Script>
        <fx:Style>
            @namespace esri "http://www.esri.com/2008/ags";
            @namespace s "library://ns.adobe.com/flex/spark";
            @namespace mx "library://ns.adobe.com/flex/mx";
            @namespace esri "http://www.esri.com/2008/ags";
            @namespace components "com.esri.ags.components.*";
            components|InfoWindow
                content-background-alpha : 0.4;
                background-color : #4A7138;
                background-alpha : 0.7;
                border-style : solid;
        </fx:Style>
        <mx:HBox   width="930" height="800"  id="mapHbox"  horizontalAlign="center" >   
        <mx:HBox width="80">
        </mx:HBox>
        <mx:HBox id="myHBox" width="800" height="600" backgroundColor="0xffffff"  >
            <mx:VBox  height="590" width="358"  >
            <!--    <mx:Panel
                    width="356" height="100%"
                    color="0x000000"
                    borderAlpha="0.15"
                    >
                    -->
                    <mx:Canvas height="100%" width="100%" backgroundColor="0xffffff" >
                        <esri:Map id="myMap" openHandCursorVisible="false"
                                  height="100%" 
                                  logoVisible="false"
                                  doubleClickZoomEnabled="false"
                                  scrollWheelZoomEnabled="false"
                                  zoomSliderVisible="false"
                                  scaleBarVisible="false" scale="4000000" >
                            <esri:extent>
                                <esri:Extent xmin="-10736651.061900" ymin="4024099.909700" xmax="-10409195.669800" ymax="3440153.831100"      >
                                    <esri:SpatialReference wkid="102100"/>
                                </esri:Extent>
                            </esri:extent>
                            <esri:ArcGISDynamicMapServiceLayer id="dynamicLayer2"
                                                               url="http://tfs-24279/ArcGIS/rest/services/RADIO_BUTTONS/counties_layer/MapServer" />
                            <esri:ArcGISDynamicMapServiceLayer id="dynamicLayer" name=" "
                                                               alpha="1"
                                                               load="loadLayerName()"
                                                       url="http://tfs-24279/ArcGIS/rest/services/{myURL.selectedItem.value}/MapServer"   />
                            <esri:FeatureLayer id="fLayer"
                                               graphicAdd="fLayer_graphicAddHandler(event)"
                                               mode="snapshot"
                                               outFields="*"
                                               symbol="{defaultsym}"
                                               url= "http://tfs-24279/ArcGIS/rest/services/RADIO_BUTTONS/feature_layer_0709_five/FeatureServer/ 0" />
                        </esri:Map>
                    </mx:Canvas>
            <!--    </mx:Panel>-->
            </mx:VBox>       
            <mx:VBox  height="590" width="20"  >
            </mx:VBox>       
            <mx:Canvas height="500" width="400" backgroundColor="0xffffff"
                       horizontalScrollPolicy="off"
                       verticalScrollPolicy="off" >
                <mx:VBox  width="420" height="50%" paddingLeft="5" paddingTop="10" paddingRight="10" paddingBottom="10"
                         verticalGap="8">
                    <mx:Form  >
                        <mx:FormItem label="Year        :"  >
                            <mx:ComboBox   id="yearcombo" selectedIndex="0" labelField="label" width="100%" change="changeEvt(event)"  >
                                <mx:ArrayCollection id="year"  >
                                    <fx:Object label="2007"  year="2007" />
                                    <fx:Object label="2009"  year="2009" />
                                </mx:ArrayCollection>
                            </mx:ComboBox>
                        </mx:FormItem>
                        <mx:FormItem label="Measure:">
                            <mx:ComboBox   id="myURL" selectedIndex="8" width="80%" mouseOver="clickEv2(event)" close="closeHandler(event)">
                            <mx:ArrayCollection id="measures"   >
                                <fx:Object id="forindout07" labeltext="Forestry Industry Output" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_07_forest_industry_output" year="2007"  />
                                <fx:Object id="foremp07" label="Forestry Employment " value="RADIO_BUTTONS/TFEI_07_forest_employment" year="2007" />
                                <fx:Object id="forlabinc07" label="Forestry Labor Income " value="RADIO_BUTTONS/TFEI_07_forest_labincome" year="2007" />
                                <fx:Object id="forindbustax07" label="Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_07_forest_business_tax" year="2007" />
                                <fx:Object id="forindout09" label="Forestry Industry Output " value="RADIO_BUTTONS/TFEI_09_forest_industry_output" year="2009"  />
                                <fx:Object id="foremp09" label="Forestry Employment " value="RADIO_BUTTONS/TFEI_09_forest_employment" year="2009" />
                                <fx:Object id="forlabinc09" label="Forestry Labor Income " value="RADIO_BUTTONS/TFEI_09_forest_labincome" year="2009" />
                                <fx:Object id="forindbustax09" label="Forestry Indirect Business Tax" value="RADIO_BUTTONS/TFEI_09_forest_business_tax" year="2009" />
                                <fx:Object id="blank" label=" "  />
                            </mx:ArrayCollection>
                        </mx:ComboBox>
                        </mx:FormItem>
                    </mx:Form>
                    <mx:VBox  id="layerPanel" width="50%" height="8%" verticalGap="3" paddingLeft="17">
                        <mx:RadioButtonGroup id="radioBtnGroup" itemClick="radioClickHandler(event)"  />
                    </mx:VBox>
                    <mx:VBox paddingLeft="17" height="50%" >
                    <mx:Canvas  id="legendPanel" width="100%"  >
                        <mx:Label id="myLabel" text=" " fontWeight="bold" />
                        <esri:Legend id="myLegend"
                                     layers="{[dynamicLayer]}"
                                     map="{myMap}" visible="false"
                                     respectCurrentMapScale="false"/>
                    </mx:Canvas>
                    <mx:TextArea width="275"  borderAlpha="0" height="200"  >
                        <mx:htmlText   >
                            <![CDATA[<font size='11'><b>Note:</b> Counties in white indicate either no data is available for that measure or the data has been supressed due to confidentiality.</font>
                            ]]>
                        </mx:htmlText>
                    </mx:TextArea>
                    </mx:VBox>   
                </mx:VBox>
            </mx:Canvas>
        </mx:HBox>
        </mx:HBox>   
    </mx:Application>

  • [Special Prices for Business Partners] and [Hierarchies and Expansions]

    Dear Sirs,
    I am running into three problems.
    1.) I loaded 313 items Special Prices by DTW however I can not locate where it went?
         I searched via the path [Inventory>Price Lists>Special Prices>Special Prices for Business Partners]but find nothing in there.
    2.) I can not find DTW templates for Hierarchies and Expansions data load.
         Also I searched via the path [Inventory>Price Lists>Special Prices>Hierarchies and Expansions] to see if the Special Prices I loaded with DTW maybe there but find nothing there.
    3.) I can not find any information related to Hierarchies and Expansions in the [diapi] help file.
    Could it be these two functionalities require "manual" input?
    If so, how on earth the 313 Special Prices DTW data load went through "successfully" and find no trace of it?
    I am pulling my hair off to find some advice.
    Would appreciate it greatly if someone could enlighten me on these two functionalities.
    Kuni - Tokyo
    Edited by: furuya kunitomo on May 15, 2009 2:28 PM

    Hi Kuni,
    To quickly answer your questions:
    1.) I loaded 313 items Special Prices by DTW however I can not locate where it went?
    The path is correct. If you can't find anything probably something went wrong in the DTW import.
    Check that the "Test Run" checkbox was not checked and all required keys are entered in the templates.
    2.) I can not find DTW templates for Hierarchies and Expansions data load.
    The relevant templates are:
    SpecialPrices.xlt
    SpecialPricesDataAreas.xlt
    SpecialPricesQuantityAreas.xlt
    the default location when installing DTW is:
    C:\Program Files\SAP\Data Transfer Workbench\Templates\Templates\oSpecialPrices
    When entering Hierarchies and Expansions (renamed to Period and Volume Discount in Version 2007) you must enter *x for CardCode where x is the price list number.
    3.) I can not find any information related to Hierarchies and Expansions in the diapi help file.
    The information in the DI API file is under the SpecialPrices Object.
    See below some general information regarding special prices:
    SpecialPrices is a business object part of the Inventory and Production module under
    Select Inventory > Price Lists > Special Prices > Special Prices for Business Partners.
    OR
    Select Inventory > Price Lists > Period and Volume Discount (Hierarchies and Expansions in previous versions)
    Interesting points:
    Source table: OSPP
    DTW Template: SpecialPrices.csv
    Mandatory fields in SAP Business One: CardCode and ItemCode.
    PriceListNum is a foreign key to the PriceLists object - source table OPLN, field name ListNum.
    CardCode is the Business Partner CardCode to enter Special Prices for Business Partners.
    Child object of the SpecialPrices Object: SpecialPricesDataAreas (source table: SPP1)
    DTW Template: SpecialPricesDataAreas.csv
    LineNum (Field name LINENUM) - Always enter the appropriate LineNumber you want to update (starts from 0).
    Child object of the SpecialPricesDataAreas Object: SpecialPricesQuantityArea (source table: SPP2)
    DTW Template: SpecialPricesQuantityAreas.csv
    LineNum (Field Name SPP2LNum). Always enter the appropriate LineNumber you want to update (starts from 0).
    Hope that information helps a little. If you have any fruther questions enter the following information:
    1. SAP Business One Version including Patch level
    2. Do you get any error message after the import? What is the message returned?
    Kind Regards,
    Friederike Mundt
    SAP Business One Forums Team

  • Loop through all controls in view

    Hi Everyone,
    I need to cycle through all the controls on a view.
    I have set each of the controls of type UISegmentedControl with a unique tag number.
    I am using this tag number to perform a lookup in database for the value of the segmented control.
    So, my question is this.... how do i cycle through all the controls on a view?
    thank you
    take care
    tony

    alt-088 wrote:
    I think we are close - just one correction.
    The segmented controls are all at design time, there will be no new controls added.
    I'm not clear on what's been corrected. The sample code I gave you assumed all the controls were known at compile time. So I think the example code addressed the problem you're trying to solve. The last paragraph of that post was just an afterthought, to explain what to do in case you ever needed to add controls dynamically.
    -> loop through all controls on view
    -> if control is of type uisegmentdcontrol
    then do database lookup on tag
    Set segment value to value returned from database
    Once again, if I correctly understand the above, the code I gave you does exactly what you want. You haven't indicated you want to take any action when a control is not a segmented control, so I don't see why you'd want to include them in the loop. However, if you actually do need to enumerate non-segmented controls (or other subviews), my last response advised you to set the tag properties of all those other controls, making sure the range of those tags is different from the range of the seg control tags.
    The part that eludes me is the looping through all the controls on the view
    I guess the part that eludes me is why you're so interested in enumerating all the controls, when you only seem to be interested in the segmented controls. But even if you really do need to look at every control, I don't see why you're rejecting the solution I gave you. [viewWithTag:|http://developer.apple.com/iphone/library/documentation/UIKit/Ref erence/UIViewClass/UIView/UIView.html#//appleref/doc/uid/TP40006816-CH3-SW26] is a powerful method which recursively walks the entire view hierarchy to find whatever tag it's looking for. If you use it correctly (e.g. by assigning unique tag numbers that tell you what type of control you've found), it will save you lots of trouble.
    If, for some reason, you insist on doing this job without using viewWithTag, the next best might be something like this:
    - (void)doSomethingWithEachSegCtrlInView:(UIView *theView) {
    UIView *subView;
    for (subView in theView.subviews) {
    if ([subView respondsToSelector:@selector(selectedSegmentIndex)]) {
    // subView is a segmented control ...
    else {
    // subView is not a segmented control ...
    if ([subView.subviews count]) {
    // this subview has its own subviews
    [self doSomethingWithEachSegCtrlInView:subView];
    Note that the above is a more difficult, more error prone method than the sample in my first response. Firstly, it needs to recurse in case any controls are placed on subviews of the main view (or on subviews of those subviews, etc.), a capability already built into viewWithTag. Secondly it needs to identify the type of each subview object. [respondsToSelector:|http://developer.apple.com/iphone/library/documentation/Co coa/Reference/Foundation/Protocols/NSObjectProtocol/Reference/NSObject.html#//appleref/occ/intfm/NSObject/respondsToSelector:] is the preferred way of identifying the class of an object, especially when the selector argument represents one of the methods you intend to use. However there's no reason to get into the business of identifying the class of an object, when you could have given that object a unique tag number in the xib, where there was no question about its class.
    Hope the above communicates the solution better than my first response!
    - Ray

  • Looping through Objects

    Hi,
    I'm trying to design business entities with ABAP Objects. I have been able to create internal tables of custom object types.
    I stumbled into a very peculiar situation in which i have to loop through my custom object internal table. i couldn't use the WHERE specification since the line type is not a structure. READ TABLE doesnt work either. What i did to overcome the problem was to do a LOOP AT with an IF statement inside and an EXIT command to quit the search when found.
    Is there a better solution? And Is the whole idea of wrapping everything in classes and accessing the through an internal idea a good idea in the first place?
    Thanks.

    heres an example:
    * DEFINITIONS
    CLASS cl_drag_drop_picture DEFINITION INHERITING FROM cl_gui_picture.
      PUBLIC SECTION.
        DATA: row     TYPE I,
              col     TYPE I.
    DATA: g_wa_pic_ctrl TYPE REF TO cl_drag_drop_picture.
    DATA: g_it_pic_ctrl LIKE TABLE OF g_wa_pic_ctrl.
    * PROCESS
    * lets assume that g_it_pic_ctrl has several entries and
    * each entry is uniquely identified by the attributes
    * row AND col.
    PERFORM GetObjectByRowCol USING p_row
                                    p_col
                           CHANGING g_wa_pic_ctrl.
    * SUBROUTINES
    FORM GetObjectByRowCol USING p_row
                                 p_col
                        CHANGING r_pic_ctrl.
      DATA: l_wa_pic_ctrl LIKE g_wa_pic_ctrl.
    * Search for picture
      LOOP AT g_it_pic_ctrl INTO l_wa_pic_ctrl.
        IF l_wa_pic_ctrl->row EQ p_row AND
           l_wa_pic_ctrl->col EQ p_col.
          r_pic_ctrl = l_wa_pic_ctrl.
          EXIT.
        ENDIF.
      ENDLOOP.
    * Collect Garbage
      CLEAR l_wa_pic_ctrl.
    ENDFORM.
    What I couldn't do is access my internal table like:
    READ TABLE g_it_pic_ctrl
          INTO r_pic_ctrl
      WITH KEY row = p_row
               col = p_col.
    OR
    LOOP AT g_it_pic_ctrl INTO r_pic_ctrl
                         WHERE row EQ p_row
                               col EQ p_col.

  • What is the best solution to create the business partners in CRM?

    Hi all,
    I need to migrate the business partners (general data, address, marketing attributes ) in CRM from an excel file
    What is the best solution to create the business partners with these informations?
    I tried LSMW but to enter the SALES and MARKETING atributes in BP i have to "click" on the attribute and not realized by the record.
    Thanks in advance
    best regard
    miguel

    Hi Miguel,
       Always preferred to use XIF Function Modules to create Business Partners and Relationships.
       CRMXIF_PARTNER_SAVE
       CRMXIF_PARTNER_REL_SAVE
       Using this function modules you can populate all most all fields in BP including Z fields(If it created through EEWB), except Marketing Attributes.
       For marketing attributes try to use FM CRM_MKTBP_CREATE_LIST_BPS_OB.
       Have a look at the notes 609236, 1081545 and 1239018. This will give you some idea, how to upload and update  marketing attributes.
    //PBP

  • Problem updating business partners - "Bank does not exist in the company"

    Hi
    I have written a small program to update business partners ( SP01 PL 34 ) and I am getting a message saying "Bank does not exist in the company"
    I am only updating simple information such as telephone, fax and email addresses.
    Does anyone know why I am getting that error ?
    Thanks
    Regards Andy

    Paul,
    Other than the code that you have written, are there any other add-ons installed with Business One such as the Payment Engine?
    I have not heard of this issue.  You may want to create a message with SAP Support since you are getting the same error through the DTW which also uses the DI API.
    Also, is there any difference between what you manually key in and what you try to push in?
    Eddy

  • Email Notification for multiple business partners

    Hi,
    I can send email to a single partner based on my action. Is it possible to send the emails to multiple partners for a single action.
    Thanks in advance.
    Regards,
    M.R

    Hi;
    Email notification to multiple business partners is not provided in standart SAP functions via actions. It is not related with actions and conditions. Below is the code for the related method... I may send the screenshots if you can give me your mail address... Use this method with smartform: CRM_IST_ORDER_CONFIRMATION_01
    CLASS : CL_DOC_PROCESSING_CRM_ORDER
    METHOD NAME: ....
    METHOD DEFINITION:
    IS_ARCHIVE_INDEX     Importing     Type     TOA_DARA
    IS_ARCHIVE_PARAMETERS     Importing     Type     ARC_PARAMS
    IS_CONTROL_PARAMETERS     Importing     Type     SSFCTRLOP
    IS_OUTPUT_OPTIONS     Importing     Type     SSFCOMPOP
    IO_APPL_OBJECT     Importing     Type Ref To     OBJECT
    IP_SMART_FORM     Importing     Type     TDSFNAME
    IS_MAIL_APPL_OBJ     Importing     Type     SWOTOBJID
    IS_MAIL_RECIPIENT     Importing     Type     SWOTOBJID
    IS_MAIL_SENDER     Importing     Type     SWOTOBJID
    IO_PARTNER     Importing     Type Ref To     CL_PARTNER_PPF
    IP_USER_SETTINGS     Importing     Type     TDBOOL
    IP_APPLICATION_LOG     Importing     Type     BALLOGHNDL
    ES_DOCUMENT_OUTPUT_INFO     Exporting     Type     SSFCRESPD
    ES_JOB_OUTPUT_INFO     Exporting     Type     SSFCRESCL
    ES_JOB_OUTPUT_OPTIONS     Exporting     Type     SSFCRESOP
    ET_ERROR_TAB     Exporting     Type     TSFERROR
    CT_ARCHIVE_INDEX_TAB     Changing     Type     TSFDARA
    METHOD z_anahtar_kullanici_yeni.
    *This Method is used to print service order.
    generally used constants of generic order
      INCLUDE: crm_direct.
      DATA:
            control_parameters TYPE ssfctrlop.
    function name
      DATA: function_name TYPE rs38l_fnam,
            dummy(254)        TYPE c,
            ls_archive_index  TYPE  toa_dara,
            ls_orderadm_h     TYPE  crmt_output_orderadm_h_com,
            ls_activity_h     TYPE  crmt_output_activity_h_com,
            ls_opport_h       TYPE  crmt_output_opport_h_com,
            ls_orgman_h       TYPE  crmt_output_orgman_h_com,
            lt_partner_h      TYPE  crmt_output_partner_h_comt,
            ls_partner_h      TYPE  crmt_output_partner_h_comt,
            ls_pricingdata_h  TYPE  crmt_output_pricingdata_h_com,
            ls_sales_h        TYPE  crmt_output_sales_h_com,
            ls_shipping_h     TYPE  crmt_output_shipping_h_com,
            lt_payplan_d_h    TYPE  crmt_output_payplan_d_h_comt,
            ls_customer_h     TYPE  crmt_output_customer_h_com,
            ls_cumulat_h      TYPE  crmt_output_cumulat_h_com,
            lt_billing_h      TYPE  crmt_output_billing_h_comt,
            lt_cancel_h       TYPE  crmt_output_cancel_h_comt,
            lt_appointment_h TYPE   crmt_output_appointment_h_comt,
            lt_billplan_d_h  TYPE   crmt_output_billplan_d_h_comt,
            lt_billplan_h    TYPE   crmt_output_billplan_h_comt,
            lt_status_d_h    TYPE   crmt_output_status_d_h_comt,
            lt_status_h      TYPE   crmt_output_status_h_comt,
            lt_srv_subject_h TYPE   crmt_output_srv_subject_h_comt,
            lt_srv_reason_h  TYPE   crmt_output_srv_reason_h_comt,
            lt_srv_result_h  TYPE   crmt_output_srv_result_h_comt,
            ls_acs_h         TYPE   crmt_acs_h_com,
            lt_srv_subject_i TYPE   crmt_output_srv_subject_h_comt,
            lt_srv_refobj_h  TYPE   crmt_output_srv_refobj_h_comt,
            lt_srv_refobj_i  TYPE   crmt_output_srv_refobj_h_comt,
            lt_orderadm_i    TYPE   crmt_output_orderadm_i_comt,
            lt_orgman_i      TYPE   crmt_output_orgman_i_comt,
            lt_pricingdata_i TYPE   crmt_output_pricingdata_i_comt,
            lt_pricing_i     TYPE   crmt_output_pricing_i_comt,
            lt_product_i     TYPE   crmt_output_product_i_comt,
            lt_sales_i       TYPE   crmt_output_sales_i_comt,
            lt_service_i       TYPE   crmt_output_service_i_comt,
            lt_shipping_i    TYPE   crmt_output_shipping_i_comt,
            lt_schedlin_i    TYPE   crmt_output_schedlin_i_comt,
            lt_customer_i    TYPE   crmt_output_customer_i_comt,
            lt_partner_i     TYPE   crmt_output_partner_i_comt,
            lt_item_cstics_i TYPE   crmt_item_cstics_tab,
            lt_billing_i     TYPE   crmt_output_billing_i_comt,
            lt_cancel_i      TYPE   crmt_output_cancel_i_comt,
            lt_finprod_i     TYPE   crmt_output_finprod_i_comt,
            lt_ordprp_i      TYPE   crmt_output_ordprp_i_comt,
            lt_appointment_i TYPE   crmt_output_appointment_i_comt,
            lt_billplan_d_i  TYPE   crmt_output_billplan_d_i_comt,
            lt_billplan_i    TYPE   crmt_output_billplan_i_comt,
            lt_orderadm_i_qt TYPE   crmt_output_orderadm_i_qt_comt,
            lt_schedlin_i_cf TYPE   crmt_output_schedlin_i_cf_comt,
            lt_status_i      TYPE   crmt_output_status_i_comt,
            lt_working_set_e_s_bbp TYPE /1cn/working_set_e_s_bbp_t,
            lv_language LIKE  sy-langu,
            lo_order TYPE REF TO cl_doc_crm_order,
            lv_object_guid TYPE crmt_object_guid,
            lv_status TYPE jstat,
            lt_status TYPE TABLE OF jstat,
            lv_error_tab_wrk TYPE ssferror,
            ls_output_options TYPE ssfcompop,
    for assignments - begin
            lt_service_i_assi TYPE  crmt_output_service_i_***_comt
    for assignments - end
    fill internal structure for the output options
      ls_output_options = is_output_options.
    get the function name for this smart form
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
           EXPORTING
                formname           = ip_smart_form
            VARIANT            = ' '
            DIRECT_CALL        = ' '
           IMPORTING
                fm_name            = function_name
           EXCEPTIONS
                no_form            = 1
                no_function_module = 2
                OTHERS             = 3
      IF sy-subrc <> 0.
      add an error message to processing protocol
        MESSAGE i015(sppf_media) WITH ip_smart_form INTO dummy.
        CALL METHOD cl_log_ppf=>add_message
          EXPORTING
            ip_problemclass = '1'
            ip_handle       = ip_application_log.
        EXIT.
      ENDIF.
    determine the tables of the application
      CALL FUNCTION 'CRM_OUTPUT_SINGLE_READ'
           EXPORTING
                iv_object                 = io_appl_object
                iv_smart_form             = ip_smart_form
                ir_partner                = io_partner
           IMPORTING
                es_output_orderadm_h      = ls_orderadm_h
                es_output_activity_h      = ls_activity_h
                es_output_opport_h        = ls_opport_h
                es_output_orgman_h        = ls_orgman_h
                es_output_pricingdata_h   = ls_pricingdata_h
                es_output_sales_h         = ls_sales_h
                es_output_shipping_h      = ls_shipping_h
                et_output_partner_h       = lt_partner_h
                et_output_payplan_d_h     = lt_payplan_d_h
                es_output_customer_h      = ls_customer_h
                es_output_cumulat_h       = ls_cumulat_h
                et_output_billing_h       = lt_billing_h
                et_output_cancel_h        = lt_cancel_h
                et_output_appointment_h   = lt_appointment_h
                et_output_billplan_d_h    = lt_billplan_d_h
                et_output_billplan_h      = lt_billplan_h
                et_output_status_d_h      = lt_status_d_h
                et_output_status_h        = lt_status_h
                et_output_srv_subject_h   = lt_srv_subject_h
                et_output_srv_reason_h    = lt_srv_reason_h
                et_output_srv_result_h    = lt_srv_result_h
                et_output_srv_refobj_h    = lt_srv_refobj_h
                et_output_srv_refobj_i    = lt_srv_refobj_i
                et_output_srv_subject_i   = lt_srv_subject_i
                es_output_acs_h           = ls_acs_h
                et_output_orderadm_i      = lt_orderadm_i
                et_output_orgman_i        = lt_orgman_i
                et_output_pricingdata_i   = lt_pricingdata_i
                et_output_pricing_i       = lt_pricing_i
                et_output_product_i       = lt_product_i
                et_output_sales_i         = lt_sales_i
                et_output_service_i       = lt_service_i
                et_output_shipping_i      = lt_shipping_i
                et_output_schedlin_i      = lt_schedlin_i
                et_output_partner_i       = lt_partner_i
                et_item_cstics_i          = lt_item_cstics_i
                et_output_customer_i      = lt_customer_i
                et_output_billing_i       = lt_billing_i
                et_output_cancel_i        = lt_cancel_i
                et_output_finprod_i       = lt_finprod_i
                et_output_ordprp_i        = lt_ordprp_i
                et_output_appointment_i   = lt_appointment_i
                et_output_billplan_d_i    = lt_billplan_d_i
                et_output_billplan_i      = lt_billplan_i
                et_output_orderadm_i_qt   = lt_orderadm_i_qt
                et_output_schedlin_i_cf   = lt_schedlin_i_cf
                et_output_status_i        = lt_status_i
                et_output_wrk_set_e_s_bbp = lt_working_set_e_s_bbp
                ev_language               = lv_language
    for assignments - begin
                et_output_service_i_assi  = lt_service_i_assi
    for assignments - end
    set mail title
    SELECT SINGLE caption INTO ls_output_options-tdtitle
       FROM stxfadmt WHERE
       formname = ip_smart_form AND
       langu    = lv_language.
    IF ls_output_options-tdtitle  IS INITIAL.
       SELECT SINGLE caption INTO ls_output_options-tdtitle
        FROM stxfadmt WHERE
        formname = ip_smart_form.
    ENDIF.
      CONCATENATE 'Servis Masas&#305; - Yeni bir sorun aç&#305;ld&#305;:'
      ls_orderadm_h-object_id INTO ls_output_options-tdtitle
      SEPARATED BY space.
    is_mail_appl_obj -
    fill this parameter if your application object is a BOR object
    the output will be connected with the BOR object via SAP Office
    this is done for mail and fax but not for print outputs
      ------>
    is_mail_appl_obj-LOGSYS    =
    is_mail_appl_obj-OBJTYPE   =
    is_mail_appl_obj-OBJKEY    =
    is_mail_appl_obj-DESCRIBE  =
      ------>
    language of smart form----
    determin here the language of the smart form
      control_parameters = is_control_parameters.
      control_parameters-langu = lv_language.
    fill archive parameters for archive link -
      IF is_output_options-tdarmod = '2' OR
         is_output_options-tdarmod = '3'.
      archive_index_tab
        READ TABLE ct_archive_index_tab INTO ls_archive_index INDEX 1.
        ls_archive_index-object_id = ls_orderadm_h-guid.
        IF ls_archive_index-object_id IS INITIAL.
          DELETE ct_archive_index_tab INDEX 1.
        ELSE.
          MODIFY ct_archive_index_tab FROM ls_archive_index INDEX 1.
        ENDIF.
      ENDIF.
      DATA : zzpartner TYPE crmt_output_partner_h_com .
      DATA : zzadres TYPE so_name .
      DATA : zobjkey TYPE swotobjid-objkey .
      DATA: lv_user           TYPE syuname,
            lv_mailaddr       TYPE so_name,
            lv_type_id        TYPE so_escape,
            lv_partnno        TYPE ppfdpartno,
            lv_partner_no     TYPE bu_partner,
            lv_partner        TYPE crmt_object_guid,
            ls_mail_recipient TYPE swotobjid.
      LOOP AT lt_partner_h INTO zzpartner .
        CLEAR zzadres.
        CHECK zzpartner-ref_partner_fct EQ 'ZSLFN001'.
        SELECT SINGLE smtp_addr FROM adr6 INTO zzadres
                               WHERE addrnumber = zzpartner-addr_nr.
        CHECK sy-subrc EQ 0.
        lv_mailaddr = zzadres.
        lv_type_id = 'U'.
        CALL FUNCTION 'CREATE_RECIPIENT_OBJ_PPF'
          EXPORTING
            ip_mailaddr       = lv_mailaddr
            ip_type_id        = lv_type_id
          IMPORTING
            ep_recipient_id   = ls_mail_recipient
          EXCEPTIONS
            invalid_recipient = 1
            OTHERS            = 2.
    delete the old recipient object
        CALL FUNCTION 'DELETE_RECIPIENT_OBJECT_PPF'
          EXPORTING
            is_recipient_id = is_mail_recipient.
    call function to process smart form
        CALL FUNCTION function_name
             EXPORTING
                  archive_index        = is_archive_index
                  archive_index_tab    = ct_archive_index_tab
                  archive_parameters   = is_archive_parameters
                  control_parameters   = control_parameters
                  mail_appl_obj        = is_mail_appl_obj
               mail_recipient       = is_mail_recipient
                  mail_recipient       = ls_mail_recipient
                  mail_sender          = is_mail_sender
                  output_options       = ls_output_options
                  user_settings        = ip_user_settings
                  orderadm_h           = ls_orderadm_h
                  activity_h           = ls_activity_h
                  opport_h             = ls_opport_h
                  orgman_h             = ls_orgman_h
                  partner_h            = lt_partner_h
                  pricingdata_h        = ls_pricingdata_h
                  sales_h              = ls_sales_h
                  shipping_h           = ls_shipping_h
                  payplan_d_h          = lt_payplan_d_h
                  cumulat_h            = ls_cumulat_h
                  customer_h           = ls_customer_h
                  acs_h                = ls_acs_h
                  billing_h            = lt_billing_h
                  cancel_h             = lt_cancel_h
                  appointment_h        = lt_appointment_h
                  billplan_d_h         = lt_billplan_d_h
                  billplan_h           = lt_billplan_h
                  status_d_h           = lt_status_d_h
                  status_h             = lt_status_h
                  srv_subject_h        = lt_srv_subject_h
                  srv_reason_h         = lt_srv_reason_h
                  srv_result_h         = lt_srv_result_h
                  srv_subject_i        = lt_srv_subject_i
                  srv_refobj_h         = lt_srv_refobj_h
                  srv_refobj_i         = lt_srv_refobj_i
                  orderadm_i           = lt_orderadm_i
                  orderadm_i_qt        = lt_orderadm_i_qt
                  orgman_i             = lt_orgman_i
                  pricingdata_i        = lt_pricingdata_i
                  pricing_i            = lt_pricing_i
                  product_i            = lt_product_i
                  sales_i              = lt_sales_i
                  service_i            = lt_service_i
                  schedlin_i           = lt_schedlin_i
                  schedlin_i_cf        = lt_schedlin_i_cf
                  shipping_i           = lt_shipping_i
                  partner_i            = lt_partner_i
                  item_cstics_i        = lt_item_cstics_i
                  customer_i           = lt_customer_i
                  billing_i            = lt_billing_i
                  cancel_i             = lt_cancel_i
                  finprod_i            = lt_finprod_i
                  ordprp_i             = lt_ordprp_i
                  appointment_i        = lt_appointment_i
                  billplan_d_i         = lt_billplan_d_i
                  billplan_i           = lt_billplan_i
                  status_i             = lt_status_i
                  working_set_e_s_bbp  = lt_working_set_e_s_bbp
                  language             = lv_language
    for assignments - begin
                  service_i_assi      =  lt_service_i_assi
    for assignments - end
             IMPORTING
                  document_output_info = es_document_output_info
                  job_output_info      = es_job_output_info
                  job_output_options   = es_job_output_options
             EXCEPTIONS
                  output_canceled      = 1
                  parameter_error      = 2
                  OTHERS               = 3.
        IF sy-subrc = 0.
    determine header guid to set status printed
          lo_order ?= io_appl_object.
          lv_object_guid = lo_order->get_crm_obj_guid( ).
    set status printed into the crm order
          CALL FUNCTION 'CRM_STATUS_SET_INTERN'
            EXPORTING
              iv_objnr            = lv_object_guid
              iv_status           = gc_status-printed
              xnoauto             = true
            EXCEPTIONS
              object_not_found    = 1
              status_inconsistent = 2
              status_not_allowed  = 3
              OTHERS              = 4.
        ELSE.
          CASE sy-subrc.
            WHEN 1.
              MESSAGE e016(sppf_media) INTO dummy.
            WHEN 2.
              MESSAGE e017(sppf_media) WITH function_name INTO dummy.
            WHEN 3.
              MESSAGE e018(sppf_media) WITH function_name INTO dummy.
          ENDCASE.
          CALL METHOD cl_log_ppf=>add_message
            EXPORTING
              ip_problemclass = '1'
              ip_handle       = ip_application_log.
        ENDIF.
    get error table
        CALL FUNCTION 'SSF_READ_ERRORS'
          IMPORTING
            errortab = et_error_tab.
    fill error into crm_order status
        LOOP AT et_error_tab INTO lv_error_tab_wrk
                 WHERE msgty = gc_msgtype-error.
          CALL FUNCTION 'CRM_MESSAGE_COLLECT'
               EXPORTING
                    iv_caller_name     = gc_object_name-order
                    iv_msgno           = lv_error_tab_wrk-msgno
                    iv_msgid           = lv_error_tab_wrk-msgid
                    iv_msgty           = lv_error_tab_wrk-msgty
                    iv_msgv1           = lv_error_tab_wrk-msgv1
                    iv_msgv2           = lv_error_tab_wrk-msgv2
                    iv_msgv3           = lv_error_tab_wrk-msgv3
                    iv_msgv4           = lv_error_tab_wrk-msgv4
                IV_ERROR_RELEVANCE = FALSE
                    iv_msglevel        = gc_msglevel-administrator
               EXCEPTIONS
                    not_found          = 1
                    appl_log_error     = 2
                    OTHERS             = 3.
        ENDLOOP.
      ENDLOOP .
    ENDMETHOD.

  • Cannot retrieve business partners in SAP mobile iPad

    Hello Colleagues,
    since some days I'm not able to retrieve business partners in my SAP mobile App.
    Neither in iPad nor in iPhone.
    I tried it on 2 different test servers.
    A couple of day's before I saw all the business partners.
    The only change I did in the last days was executing the steps regarding the Java JRE that was recommended by SAP Note 1582526.
    In the Message-Log I've found the following:
    The SQL-Exception with the ErrorCode 242 points to a conversion error from the given Date-String to a DateTime Value.
    The Date-String is automatically inserted by the (whatever) system, it is the current date.
    Is there a possibility to change the DateTime Format so the query can pass thru and I can see the business-partners?
    Thank you in advance
    Rudy.

    Problem solved
    After setting the language of the sql server "sa" from german to english, everything works fine.
    I don't know why this problem occurred. I never changed the language before...
    Cheers
    Rudy

  • Nested Loops...looping through one month of data at a time year by year

    Hi all,
    I'm trying to create an insert statement that loops through a table that has 10 years of data (2001 to 2010) month by month to minimize impact on server and commits more frequently to avoid filling up the redo logs and rollback tablespaces. The table is large, has about 40 millions records per year. Lets say the structure of the table is the following:
    Customer_ID number(9),
    Order_Item_1 number(6),
    Order_Item_2 number(6),
    Order_Item_3 number(6),
    Order_date date
    The table is in flat format but I want to normalize it so that it looks like the following:
    Customer_ID Order_Seq Order_Item Order_date
    999999999 1 555555 01-jan-2001
    999999999 2 666666 01-jan-2001
    999999999 3 444444 01-jan-2001
    888888888 1 555555 03-jan-2001
    888888888 2 666666 03-jan-2001
    But because I want to loop through month by month....I need to set it up so that it loops through month by month, year by year (Using the Order Date Field) and Order_item by Order_item. Something like:
    so my insert statements would be something like if I hardcoded instead of put the insert statement into a loop:
    insert into orders_normalized
    (Customer_id,Order_seq,Order_item,Order_date) select customer_id,1,Order_item,Order_date where Order_item_1 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='01';
    insert into orders_normalized
    (Customer_id,Order_seq,Order_item,Order_date) select customer_id,2,Order_item,Order_date where Order_item_2 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='01';
    insert into orders_normalized
    (Customer_id,Order_seq,Order_item,Order_date) select customer_id,3,Order_item,Order_date where Order_item_3 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='01';
    insert into orders_normalized
    (Customer_id,Order_seq,Order_item,Order_date) select customer_id,1,Order_item,Order_date where Order_item_1 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='02';
    insert into orders_normalized
    (Customer_id,Order_seq,Order_item,Order_date) select customer_id,2,Order_item,Order_date where Order_item_2 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='02';
    insert into orders_normalized
    (Customer_id,Order_seq,Order_item,Order_date) select customer_id,3,Order_item,Order_date where Order_item_3 is not null and to_char(order_date,'yyyy') = '2001' and to_char(order_date,'mm')='03';
    Hope this makes sense.
    Thanks

    Does the sequence of items in an order really matter? In other words, do we really need to preserve that an item was in position 2 versus position 1? I bet that the sequence or position of each item in an order is not meaningful. They were probably numbered 1, 2, and 3 just to make them uniquely named columns so there would be three slots to hold up to 3 items in the denormalized table.
    You only have about 400 million rows to insert, so it could feasibly be done in a single transaction (depending on your database environment).
    You can always do a create table as select (CTAS) to help with undo / redo issues and get better performance. You could run it in parallel, and spit it out to a new table partitioned by month. Single DDL statement running in parallel making your new table--sounds good to me.
    How about something like this:
    CREATE TABLE ORDERS_NORMALIZED
    (CUSTOMER_ID, ORDER_ITEM, ORDER_DATE)
    PARTITION BY RANGE(ORDER_DATE)
    PARTITION p200901 VALUES LESS THAN (TO_DATE('200902','YYYYMM')),
    PARTITION p200902 VALUES LESS THAN (TO_DATE('200903','YYYYMM')),
    PARTITION p201012 VALUES LESS THAN (TO_DATE('201101','YYYYMM'))
    as SELECT CUSTOMER_ID, ORDER_ITEM_1, ORDER_DATE
       FROM OTHER_TABLE
       WHERE ORDER_ITEM_1 IS NOT NULL
       UNION ALL
       SELECT CUSTOMER_ID, ORDER_ITEM_2, ORDER_DATE
       FROM OTHER_TABLE
       WHERE ORDER_ITEM_2 IS NOT NULL
       UNION ALL
       SELECT CUSTOMER_ID, ORDER_ITEM_3, ORDER_DATE
       FROM OTHER_TABLE
       WHERE ORDER_ITEM_3 IS NOT NULL.....................
    Out of curiosity, why not normalize it further? You could have used two tables instead of one.
    One (ORDER) with:
    ORDER_ID
    CUSTOMER_ID
    DATE
    Order_id would be a new surrogate key / primary key.
    Another table (ORDER_ITEM) with:
    ORDER_ID
    ORDER_ITEM
    It would be a table that links ORDERS to ITEMS. You get the idea.

  • Using HR data in R/3 to create business partners in Solution Manager

    Is it OK for me to setup Solution Manager to automatically download HR data from R/3 to create the Business Partners (employee role) in Solution Manager?
    We have setup SAP CRM 4.0 to automatically download the HR data and create Business Partners (employee role) in CRM.  Since Solution Manager has the CRM component in it, I assume we can do it as well in Solution Manager.
    Regards,
    Mel Calucin
    Bentley Systems

    We did it, i don't see the problem...

  • Idoc DEBCOR - Extend use to Business Partners and customise

    I am writing a high level technical design document on a new interface for my current client. We are currently in the scoping/blueprint phase.
    We will be implementing CRM(?), ECC 6.0 and PI7.0
    I have been tasked with writing/creating an outbound interface from CRM/ECC to send Business Partners from ECC to an external application via PI. Preferably using standard SAP functions/transactions!
    Can I use the DEBCOR Idoc and customise/add the additional segments I require for the additional fields for this interface?
    I was hoping to use BD12 (send Customers - Master Data Distribution) as well, but unfortunately, I do not have a sandpit/development system to use yet as we are still "blueprinting", therefore I am unable to test my assumptions before finalising the HTD document.
    If DEBCOR cannot be used is there any logic in use the ADRMAS anc customising this?
    I was hoping to use change pointers as well, but I guess once I have the Idoc configured, I can work out the distribution model in BD64..
    Has anyone sent Business Partners from ECC and if so, what methods were used?

    I am going to try and see if BusinessPartnerDataManagementBusinessPartnerEventOut.informBusinessPartnerAsBulk fits my requirements.
    http://erp.esworkplace.sap.com/socoview(bD1lbiZjPTgwMCZkPW1pbg==)/render.asp?applytx=&id=86162F8CD62011DB2B24000F20DAC9EF&fragID=&packageid=DBBB6D8AA3B382F191E0000F20F64781&iv=

  • UI invisible after updating 5000 business partners

    hi,
    i'm updating about 5000 business partners in my addon.
    I do this in a thread, so the user can do other things in sap.
    If there is no user interaction the screen will be locked, but that doesn't matter because the addon will go on as i can see in the status bar.
    After 1-2 hour the user cannot acess SAP anymore. The UI will not been refreshed. The only way is to kill the process.
    Is there a way to handle this?
    SAP 8.8 SP00 PL19
    best regards
    Markus

    Hello Marcus,
    When i had this kind of error, i done the following: spliited the records to be updated as 1000 per group, and executed a them in  a cycle.
    Also a good idea it the following:
    for 1 to 5000
    call updateBP  (params)
    next
    Sub Updatebp (params)
    oBp = moSBOCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oBusinessPartners)
    oBp.update
    'release object
    GC.Collect() 'Call the garbage collector for good measure
    end sub
    no more data required, and stable.
    Regards
    János
    pS: use GetDICompany to connect via UI Addon if necessary in 2007 / 8.8
    Edited by: János Nagy on Feb 10, 2011 12:33 PM

  • Relationship cannot be created between identical business partners

    Hello,
    I am implementing CRM 5.0 and trying to create business partner relationships to the identical business partner.  For example, I am trying to makbe BP#1 have te relationship 'Has a Contact of' to BP#1.  However, I am getting the error message:
    'Relationship cannot be created between identical business partners'.
    (Message no. R1776)
    Has anyone ever encountered this error?  Is there any way to create a relationship in SAP-CRM to the same business partner?
    Thanks much for your help,
    Dan

    Hi Daniel
    In short: No, it is not possible to have a relationship "between" a BP and itself.
    In long: In R/3 there are partner roles like Sold to, ship to and others. When CRM was designed the people at SAP did want to simplify a bit and implemented the following logic for partner determination: If there is no relationship of a searched type, the BP itself is taken. As a result a relationship pointing to its source is not allowed as it would duplicate the information already existing.
    Hope this helps,
    Kai

Maybe you are looking for

  • Adding New BP Role In CRM 5.0

    Hi, when i create a new BP role using BUSD it is not displaying in roles of BP using Trans.code BP and i am not able to add this BP Role in Field Group BP Role (IMG-> cross-app-> BP->Basic Settings->Field Groups->cong. field groups by BP Role) to thi

  • Volume going down automatically

    the volume on my ipod touch is going down automatically without me touching it .. Ive put it back up but with 10seconds it will go down again, this isnt my ipod touch as i bought it second hand and have had it over 2years now .. I've tried restarting

  • How to name & save a Web Clip?

    I've been able to create a Web Clip Widget. However, I can't figure out how to give it a name and save it with the other Widgets on the Widget Bar. If I open Dashboard the Web widget remains in place. I can move it but cannot save it. If I click the

  • Userexit  for partner function changed

    What is the userexit for partner function changes in VA01 or VA02.

  • 2 suggestions for Score Edit in Logic

    Hi, I've just been looking for a place where I could do suggestions to the Logic developers, but couldn't find it.... well, maybe they read this I'd really like the option of having chords with an alternative bass note (like G/B) displayed with the c