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.
SantoshHi 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 PMHi 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
tonyalt-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 -
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
miguelHi 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 AndyPaul,
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.RHi;
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ı - Yeni bir sorun açıldı:'
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.
ThanksDoes 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 SystemsWe 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
MarkusHello 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,
DanHi 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