SSIS Custom lookup component. Set output dynamically
I am currently working on a custom ssis lookup component. In the ProvideComponentProperties method I have defined the input, and a single output for lookup found. Now based on user selection (a drop down list in the UI), there could be different type of
second lookup not found output". The user can select either to forward that row to another output "Lookup not found", or "redirect to error" or "fail component". (Similar to the stock SSIS lookup component).
1.) Should I initialize both the output types "lookup not found" and "redirect to error " in ProvideComponentProperties ?
2.) Based on the user selection I have to set the input DTSRowDisposition to RD_NotUsed or RD_RedirectRow. Should I do this in my Validate() method or Reinitializemetadata ?
I currently have set the DTSRowDisposition in my validate() method, and I am getting a strange behavior. Lets say I set my output to "Redirect to error" and press "OK' Now if I dont connect the error output, I get an yellow exclamation
telling me the rows with error will be discarded, which is as expected. Now if go back in my UI and change the option from redirect to error to 2nd output of "Lookup not found" and press "Ok" the yellow exclamation warning does not go away.
I have to go back in the UI and just press "Ok" again and the warning goes away.
Hi monty_87,
We need to initialize both the output types "Look not found" and "Error Output" in ProvideComponentProperties.
For the second question, please set the DTSRowDisposition from ProvideComponentProperties as well.
Once you have moved the set of DTSRowDisposition to ProvideComponentProperties, please check whether the issue you mentioned goes away.
For your reference, please see the sample code from:
http://msdn.microsoft.com/en-us/library/ms136009.aspx
Thanks,
Jinchun Chen
Similar Messages
-
More than one custom Component for a Component Set
Hi All,
I developed a GenIL object from the scratch and created a component that it has it as reference. Now, I am intending to add this new component into an existing (standard) Component Set (CRM_CMG).
This component set already has a custom component and it is working fine but, after adding the second component, when trying to enter into the BSP_WD_CMPWB for the corresponding component, I am getting the following error: "BOL component set CRM_CMG does not exist; check runtime repository".
The place were I created the component and added it into the Component Set is: SPRO->Customer Relationship Management->CRM Cross-Application Components->Generic Interaction Layer/Object Layer->Basic Settings.
Does anyone know why this is happening and/or how to solve it?
Regards and Thanks in advance.
Alejandro.Hi,
If you need to perform the checks while using a maintenance view, you can do this with modification events. e.g. just implement a form that triggers your custom checks in a "before save" event... (SE55->Environment->Event)
Kr,
Manu. -
Set SSIS variable property 'EvaluateAsExpression' to true dynamically
I have a variable in SSIS.Initially i will set the value 'EvaluateAsExpression' property to false.
In my package.I have a foreach loop container.Once the execution enters in to the for each loop container.I want to set the 'EvaluateAsExpression' to true.Is that possible??
Can anyone please helpHi Abhinav530,
It’s not supported to change the EvaluateAsExpression property of a SSIS variable at runtime. I guess the sceanrio may be that you want the variable to use the default value when the package execution hasn’t entered the Foreach Loop Container phase, while
the variable get value from the expression when the execution of the Foreach Loop Container starts. In this circumstance, you can create another variable with the same name but in the Foreach Loop Container scope. In this way, you don’t need to make changes
to the existing expressions that reference the variable, and the variable in Foreach Loop Container scope will override the same name variable in package scope when the Foreach Loop Container executes.
Regards,
Mike Yin
TechNet Community Support -
Custom Pipeline Component stopped changing input filename
Hi
In my project, I have a custom pipeline component to change the input file name. I use it in the receive pipeline decode stage. It was working initially when I had only a receive pipeline and custom pipeline component in my solution. later I introduced
two schemas, an orchestration, map and a send pipeline. The rename is not working anymore. Please help.
receive adapter: FILE
send adapter: FTP
Custom pipeline component: (File Name Setter)
Receive pipeline:
decode: custom pipeline component to rename the filename
disassemble: flatfile disassembler conecting to a document schema
Map:
Schema 1 to Schema 2 (transforms from Windows to Unix format)
Orchestration:
receive message
transform using map above
send message
Exception Handler
Send pipeline:
FlatFile assembler
manibestMay be its not working now, because in the orchestration which you have added,
you’re constructing a new message from the received message and the context properties from the Received message is not copied across to the newly constructed message. So when you use “%SourceFileName%” macro in the send port,
the ReceivedFileName context property is missing in the newly constructed message which is sent out.
So in your Orchestration, while constructing (in MessageAssignment shape) the outbound message from the Received message, copy the context property of the Received message to the newly constructed message. Something like this
//This line copies all the context properties from received message to the outputted message
msgOutputted (*)= msgReceived(*)
//or
//This line just copies the receive file name context property from received message to the outputted message
msgOutputted (FILE.ReceivedFileName)= msgReceived (FILE.ReceivedFileName).
If you’re not using the Orchestration or constructing the new message (even in map), then just add the schemas/orchestration or any pipeline would not affect the ReceiveFileName code. May be in this case, debug the pipeline and also check whether the outputted
message has ReceivedFileName in its context property.
If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply. -
I have created a custom component that extends the canvas
class. This component is created dynamically and then dragged in to
position by the user. Flexbuilder shows an error on the highlighted
lines that set the new x and y coordinates that says "1059:
Property is read-only". How do I give my component x,y capability?
Custom Component Code:
package components
import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.MouseEvent;
import mx.containers.Canvas;
import mx.controls.TextArea;
import mx.events.FlexEvent;
public class TextPanel extends Canvas
public function TextPanel()
super();
addEventListener(FlexEvent.CREATION_COMPLETE,
creationCompleteHandler);
private function creationCompleteHandler(event:Event):void
// Add the resizing event handler.
addEventListener(MouseEvent.MOUSE_DOWN, resizeHandler);
private var xOff:Number;
private var yOff:Number;
override protected function createChildren():void
super.createChildren();
var myTA:TextArea = new TextArea;
myTA.x = 1;
myTA.y = 1;
myTA.width = width - 2;
myTA.height = height - 8;
addChild(DisplayObject(myTA));
override protected function
updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
super.updateDisplayList(unscaledWidth, unscaledHeight);
graphics.clear()
graphics.lineStyle(2);
graphics.moveTo(unscaledWidth - 6, unscaledHeight - 1)
graphics.curveTo(unscaledWidth - 3, unscaledHeight - 3,
unscaledWidth - 1, unscaledHeight - 6);
graphics.moveTo(unscaledWidth - 6, unscaledHeight - 4)
graphics.curveTo(unscaledWidth - 5, unscaledHeight - 5,
unscaledWidth - 4, unscaledHeight - 6);
// Resize panel event handler.
private var origWidth:int;
private var origHeight:int;
public function resizeHandler(event:MouseEvent):void
// Determine if the mouse pointer is in the lower right 7x7
pixel
// area of the panel. Initiate the resize if so.
// Lower left corner of panel
var lowerLeftX:Number = x + width;
var lowerLeftY:Number = y + height;
// Upper left corner of 7x7 hit area
var upperLeftX:Number = lowerLeftX-7;
var upperLeftY:Number = lowerLeftY-7;
// Mouse positionin Canvas
var panelRelX:Number = event.localX + x;
var panelRelY:Number = event.localY + y;
// See if the mousedown is in the lower right 7x7 pixel area
// of the panel.
if (upperLeftX <= panelRelX && panelRelX <=
lowerLeftX)
if (upperLeftY <= panelRelY && panelRelY <=
lowerLeftY)
event.stopPropagation();
origWidth = width;
origHeight = height;
xOff = parent.mouseX;
yOff = parent.mouseY;
parent.addEventListener(MouseEvent.MOUSE_MOVE, resizePanel);
parent.addEventListener(MouseEvent.MOUSE_UP,
stopResizePanel);
private function resizePanel(event:MouseEvent):void {
//Make sure panel is not sized below minimum width
if ((origWidth + (parent.mouseX - xOff)) > 30){
width = origWidth + (parent.mouseX - xOff);
//Make sure panel is not sized below minimum height
if ((origHeight + (parent.mouseY - yOff)) > 30){
height = origHeight + (parent.mouseY - yOff);
private function stopResizePanel(event:MouseEvent):void {
parent.removeEventListener(MouseEvent.MOUSE_MOVE,
resizePanel);
Instantiate Component:
import components.TextPanel;
private function createTextPanel():void {
var tp:TextPanel = new TextPanel;
tp.width = 200;
tp.height = 100;
var tpDO:DisplayObject = this.addChildAt(DisplayObject(tp),
this.numChildren - 1);
tpDO.x =
this.mouseX = (tpDO.width / 2);
tpDO.y =
this.mouseY = (tpDO.height / 2);
}Your component extends Canvas sois a UICoonent.
Just do:
var tp:TextPanel = new TextPanel;
this.addChildAt(tp, this.numChildren - 1); -
How does one define a default style for a custom Flex component?
How does one define a default style for a custom Flex component?
hello
I created a new set of Flex component library slib.swc (Flex 4.5). Would also like to have a default style. defaults.css file, making it the default style of the component library.
Like flex the builder install directory of sdks \ 4.5.0 \ frameworks out \ libs directory has a spark.swc file, open with Winrar will see defaults.css this file. Defaults.css file defines the default style of the flex spark components.
How can it be achieved?
As follows
slib.swc contains a CLabelEx components, and a defaults.css file
defaults.css source file as follows:
@ namespace s "library :/ / ns.adobe.com / flex / spark";
@ namespace mx "library :/ / ns.adobe.com / flex / mx";
@ namespace cn "http://os.slib.cn";
cn | CLabelEx
styBackgroundAlpha: 1;
styBackgroundColor: # 569CC0;
styBorderAlpha: 1;
styBorderColor: # 569CC0;
styBorderWeight: 1;
styCornerRadius: 3;
In slib.swc the application MyLabel.mxml of the source file as follows:
<? xml version = "1.0" encoding = "utf-8"?>
<s: Application, the 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: cn = "http://os.slib.cn
the minWidth = "955" The minHeight = "600">
<fxeclarations>
</ fxeclarations>
<cn:CLabelEx x="67" y="112"/>
</ s: Application>
I hope CLabelEx default use cn | CLabelEx, style to display its appearance.
I refer to above approach, but failed to achieve. Can you please re-Detailed
Thanks!dj is right. Any Folder can be a picture folder.
Create a root level folder and add it to your Pictures Library in Windows. It will show up with all the scattered pictures from other programs. It can even be a different dirve if you like. You can even specify one to be the default save location for pictures in this dialog.
Navigate to Pictures in your Libraries in Windows Explorer Right Click and select Properties.
Message was edited by: Rikk Flohr forgot the instructions... -
How does one create LOV Map between 2 fields for custom lookup mapping
Hi there
In Internet Expenses, Expense Report Line Detail we have two unrelated fields; namely Expense Location & Tax Code.
The requirement is to map a default tax code to locations; basically when a user enters Expense Location then the mapped tax code value should default into field Tax Code.
The location-tax code mapping is stored in a custom lookup (FND_LOOKUP_VALUES).
My question is how does one go about implementing this? For example is it possbile to create a new (hidden) LOV based on the lookup mapping & then create a Personalization LOV Mapping between the 3 LOV... Or is it necessary to modify the Tax Code drop down Message Choice in JDeveloper? Of course details are appreciated!
FYI below is the relevant Personalization Structure from "Personalize Stack Layout: (NormalDetails)".
Message Lov Input: Expense Location
- Lov Mappings
-- Lov Map: (lovMap1)
-- Lov Map: (lovMap2)
-- Lov Map: (lovMap3)
- Message Text Input: Expense Location
- Message Styled Text: Transaction Location
- Message Text Input: Merchant Name Yes
- Message Styled Text: Description
- Message Check Box: Original Receipt Missing Yes
- Message Choice: Tax Code
- Message Check Box: Amount Includes Tax
- Message Choice: Tax Code
Many thanks
GHello all
The correct & supported method is this:
Extend the location LOV in JDeveloper & add a "default tax" attribute, this could be derived from a new location DFF storing the default tax code for each location. Now simply create a location Personalization LOV Map which takes this new location lov tax attribute & target it to the tax message choice field.
That's my 2c worth anyway, so please give comment if you feel there is a better way.
There is just one more little problem however... The requirement has changed! Now we require the tax code to default according to not one location field, but other fields too. For example if the user selects Expense Type of Beverage & Location of Netherlands then Tax Code should be NL19%, for Expense Type of Hotel then it should be NL6%; if the user ticks "Missing Receipt" field then it should over ride all others & set the code to NL0%.
Any ideas?
Many thanks
G
Edited by: user13363208 on 11-Aug-2010 06:51 -
How to migrate Stellent 7.5.1 custom layout component to OCS 10gR3
Hi,
I am in the process of upgrading stellent 7.5.1 to OCS 10gR3. There is a custom layout component in 7.5.1 wanted to find out how can I migrate the layout component. As probably there are changes in 10gR3 so want to find out how to migrate the custom layout component and any changes required before migrating to 10gR3.
Thanks.Hi
am putting out the steps needed for upgrading an existing CS instance from version 7.5.1 to 10gR3. Its basically a 2 step process where we use Configuration Migration Utility to migrate the CS structure and Archiver to migrate the existing contents. The steps are as follows :
1. Install a new CS 10gR3 instance on the server and configure it as per the install guide.
2. Verify that the basic functionalities for the newly installed instance is working fine by doing some simple tests like checkin ,checkout , update etc. Then upgrade the CS to the latest patchset level which can be downloaded from http://updates.oracle.com/download/6907073.html.
3. Install the latest version of Configuration Migration Utility component (which is found in the same uprgade patch set ) on both the 10gR3 CS (target) instance and the 7.5.1 CS (source).Enable them on both the CS instances and restart the same.
4. Run the Configuration Migration Utility on the source CS and download the CMU Bundle created on it.
5. Upload the CMU Bundle created in previous step to the Target CS and import the configurations from that.Verify that the CMU process is completed successfully on the Target CS instance.
6. Create a new archiver instance on the Source CS and export all the contents in that.
7. Open the Archiver Applet for the target CS instance and then Point the collections to the collections.hda of the source CS instance so that we can import the contents. Start the Import process on target server.
8. Once the CMU and Archiver Process are completed then your 10gR3 CS would be an exact replica of the Source 7.5.1 Instance.
You may also go through System Migration Guide to get more understanding on the Migration / Upgrade processes.
Hope this helps
Thanks
Srinath -
Custom itemRenderer component based on cell value: error 1009
I'm working on an item renderer for a dataGrid that has different states depending on the cell and row values.
The cell value is a toggle (true or null), and sets whether content should be shown in the cell or not
The row properties determine what is shown when the cell value is true.
The dataGrid dataProvider is populated based on user id input.
I created the itemRenderer as a custom actionscript component, closely following this example:
360Flex Sample: Implementing IDropInListItemRenderer to create a reusable itemRenderer
However, my component results in Error #1009 (Cannot access a property or method of a null object reference) when a user id is submitted.
package components
import mx.containers.VBox;
import mx.controls.*; import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
import mx.core.*;
public class toggleCellRenderer extends VBox
public function ToggleCellRenderer()
{super();}
private var _listData:BaseListData;
private var cellState:String;
private var cellIcon:Image;
private var imagePath:String;
private var imageHeight:int;
private var qty:String = data.qtyPerTime;
private var typ:String = data.type;
public function get listData():BaseListData
{return _listData;}
public function set listData(value:BaseListData):void
{_listData = value;}
override public function set data(value:Object):void {
super.data = value;
if (value != null)
//errors on next line: Error #1009: Cannot access a property or method of a null object reference.
{cellState = value[DataGridListData(_listData).dataField]}
override protected function createChildren():void {
removeAllChildren();
if(cellState=='true'){
cellIcon = new Image();
addChild(cellIcon);
//there is another state here that adds another child...
//next overrides commitProperties()...
There are no errors if I don't use an itemRenderer--the cells correctly toggle between "true" and empty when clicked.
I also tried a simple itemRenderer component that disregards the cell value and shows in image based off row data--this works fine without errors or crashing. But I need to tie it to the cell value!
I have very limited experience programming, in Flex or any other language. Any help would be appreciated.Your assumption that the xml file either loads with "true" or nothing is right.
After modifying the code to the following, I don't get the error, but it's still not reading the cell value correctly.
package components
import mx.containers.VBox;
import mx.controls.*;
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
import mx.core.*;
public class toggleCellRenderer extends VBox
public function ToggleCellRenderer()
super();
private var _listData:BaseListData;
private var cellState:Boolean;
private var cellIcon:Image;
private var imagePath:String;
private var imageHeight:int;
private var qty:String;
private var typ:String;
public function get listData():BaseListData
return _listData;
override public function set data(value:Object):void {
cellState = false;
if (listData && listData is DataGridListData && DataGridListData(listData).dataField != null){
super.data = value;
if (value[DataGridListData(this.listData).dataField] == "true"){
cellState = true;
override protected function createChildren():void {
removeAllChildren();
if(cellState==true){
cellIcon = new Image();
addChild(cellIcon);
//there is another state here that adds another child...
//next overrides commitProperties()...
- didn't set the value of qty or typ in the variable declarations (error 1009 by this too--I removed this before but wanted to point out in case its useful)
- added back in the get listData() function so I could use the listData
- changed the null check
All cells are still returning cellState = false when some are set to true, even if I comment out [if (value[DataGridListData(this.listData).dataField] == "true")] and just have it look for non-null data. That shouldn't make a difference anyway, but it confirms that all cells are returning null value.
Swapping out the first if statement in set data with different variables results in the following:
[if (listData != null)] all cells return null (cellState=false for all)
both [if (value != null)] and [if (DataGridListData != null)] results in error 1009 on a line following the if, so I assume they return non-null values.
All rows have data, just not all fields in all rows, so shouldn't listData be non-null? Could it be that the xml file hasn't fully loaded before the itemRenderer kicks in?
I also realized I had removed the item renderer from many of the columns for testing, and since some columns are hidden by default only one column in the view was using the itemRenderer--hence the single alert per row I was worried about earlier.
Thanks for your help so far. -
Steps to create a custom Window component?
What steps do I need to take to create a custom Window component? My approach now results in the component being uneditable in design view. What I do is simply select "New > MXML component", base it on spark.components.Window and supply a filename. I tried with a Panel component and that works fine.
Hi,
Step by Step creation of SAP Payroll Funcitons:
1) Follow the menu path
Human Resources>>Time Management>>Administration>>Tools>>Funtions/Operations
or transaction PE04. Enter a four digit name for e.g ZIABC, and press the create
button, enter the description. On creation the system proposes the name of
the routine use it, or enter a name of your choice by selecting the option 'Self-defined'.
2) During the execution of payroll some tables are filled with wage types and there amounts
to make these tables available to your routine enter the name of the table for e.g (RT or
CRT) in the input parameters, and to make the changes done to the data in the tables
avaiable to the payroll enter the name of the table in the Output parameters as well.
Input Parameters
Ctry Num Object Name
99 1 RT
99 2 CRT
and same shall be done in the Output Paramters if required.
3) Create an include in the program PCBURZ990 (using Transaction:
SE38), in which create a subroutine with the name supplied by SAP or the
name selected by you during Funtion creation,
in our case, it is FUZIABC.
Note: The program PCBURZ990 is in SAP Namespace, so an Access Key
will be required before you can proceed. But it will not be overwritten during any upgrade.
*Example of the subroutine
FORM FUZIABC.
*enter the code
ENDFORM.
4) After this activate the program the Funtion and add it in the schema used for payroll processing.
Reward points if helpful.
Regards,
Manoj. -
BTDF Deployment - Custom Pipeline Component
If I am deploying manually, I am able to deploy, GAC and get output accordingly.
1) But when using BTDF, its not getting deployed properly and not receiving any output. What am I doing wrong ?
2) Before deploying 'RemoveFooter' assembly and adding to PipelineBizTalk Project, how can I add that in tools of Pipeline components to add this 'RemoveFooter' component in Decode stage ?
In BTDF mentioned this :
<PropertyGroup>
<IncludePipelineComponents>true</IncludePipelineComponents>
</PropertyGroup>
<ItemGroup>
<PipelineComponents Include="$(ProjectName).PipelineComponents.dll">
<LocationPath>..\PipelineComponents\bin\$(Configuration)</LocationPath>
</PipelineComponents>
</ItemGroup>
MBHHi
MBH,
The configuration that you mentioned above is totally correct. When you add the custom pipeline component in BTDF it deploys
to “Pipeline Components” folder and at run time BTS refers the dll from this place.
Its working for me with the same configuration and I believe it might be other problem related to the actual project.
JB -
Custom Pipeline Component error
I have created a custom pipeline component which references a template file on the local drive e.g. c:\test\template.xlsx. however when I run the application the Send pipeline fails Reason: 'c:\test\template.xlsx' could not be found.
It does exist, everything is spelt correctly and the host account has access to the folder. Why can't the component see it?
----------------<0>----------------
http://redeyedmonster.co.uk
----------------<0>----------------I tried a code as highlighted by Rachit, but I don’t see issue as the referred blog suggest.
Coming to questioners code, I created a quick pipeline component which uses a dll for
Microsoft.Office.Interop.Excel
accessing the excel files and does something with Excel file.
Few things I want to highlight here.
If the questioner (RedEyeMonster) is using the same dll (Microsoft.Office.Interop.Excel)
in the pipeline component as I used, then I am afraid Workbooks.Open’s component doesn’t just take one parameter as shown.
Open method doesn’t have any overloaded methods. It takes few parameter and its worth checking each one on them.Some of the parameter are very important and could cause issues (like
ReadOnly , IgnoreReadOnlyRecommended, Editable etc). As said, the
Workbooks .Open method doesn’t just have template file location parameter. It’s worth reviewing the code again.
Microsoft.Office.Interop.Excel.Application excelApplication = new Microsoft.Office.Interop.Excel.Application();
//When I tried without the following couple of lines, my program waited for long time and crashed
excelApplication.DisplayAlerts = false;
excelApplication.Visible = true;
Microsoft.Office.Interop.Excel.Workbook excelWorkboook = excelApplication.Workbooks.Open(@"C:\MRAshwinPrabhu\TestExcel.xsl", 2, false,
5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "",
false, false, 0, false, true, 0);
While trying the code, I create a excel file as extension *.xls (older version of Excel 97-2003 workbook) and in the code I tried to open the file as “C:\foldername\FileName.xlsx”.
*.xls and *.xlsx are different, though in the folder the excel icon may look similar they are different file extensions. I for the same error as the questioner.
Also issue I faced while trying this is “DisplayAlerts”
property. When I tried without setting this property to false, my program just waited for long time and crached evently. So when you use in a program like pipeline where you don’t have UI, ensure this property is set to false.
Hope the above suggest would help the questioner.
If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply. -
Creating a custom JSF Component
Hi,
I am trying to create a custom JSF Component. My ultimate goal is to pass a bean to my custom component and have the component render some HTML output based on the info contained in the bean. Before I attempt that I am trying to get a simple custom component to just work. This component is based on the tutorial found here: http://www.jsftutorials.net/components/index.html
This tutorial just creates a component that outputs a <div> tag around the body contents of the custom component.
To keep this short I have done the following items from the tutorial link above:
1) I have created the tld file defining the tag class, name, uri and shortname
2) I have also created the tag class called TickerTag.java along with the component class UITicker.java. These classes are straight copy-and-paste jobs from the tutorial link and compile fine.
3)My faces-config.xml file has the proper component definition of
<component>
<component-type>ticker</component-type>
<component-class>ticker.UITicker</component-class>
</component>
This was the easy part. The example then goes on to use the custom component in a JSP page. I managed to get the custom component to work in a JSP page BUT my problem is getting the custom component to work in an XHTML file.
I thought all I had to do was define an xml namespace using the uri from my tld file like so:
Note: My uri is www.fubar.com/tags and is defined in the tld file.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:u="http://www.fubar.com/tags">
I then try to use the tag like so <u:ticker> <f:verbatim>Hello JSF Component</f:verbatim></u:ticker>
I am expecting the following output: <div>Hello JSF Component
</div>
but instead I get
<u:ticker>Hello JSF Component</u:ticker>
It seems the tag is not even processed. This is my first jump into custom components. I have done custom JSP tags in the past but I never tried to display them on an XHTML page.
If you are wondering why I am using XHTML pages, this was setup a while back by a previous developer. Changing everything to a JSP would take a long time and probably break some stuff I am not aware of yet. As such the web.xml file of this JSF web app has the following:
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
So all *.jsf files are processed and sent to the corresponding .xhtml file.
I have looked up creating custom components on google and every last example uses their newly created components in a jsp file. No XHTML uses so far.
Below are my tld files and xhtml file if that helps:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>u</short-name>
<uri>http://www.fubar.com/tags</uri>
<tag>
<name>ticker</name>
<tag-class>ticker.TickerTag</tag-class>
<body-content>JSP</body-content>
</tag>
</taglib>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:u="http://www.fubar.com/tags">
<html>
<head>
<title>Show Custom Component</title>
</head>
<body>
<f:view>
<u:ticker> <f:verbatim>Hello JSF Component</f:verbatim></u:ticker>
</f:view>
</body>
</html>
Any suggestions/help are much appreciated,
Nick
</div>Thanks Ray. I'll take a look at that site.
I managed to figure out my problem. I never created a .taglib.xml file that reference the component I defined in the faces-config.xml file. Once I did that everything work perfectly.
I managed to use this forum post as a guide.
http://osdir.com/ml/java.facelets.user/2006-12/msg00042.html
I hope this helps anyone else.
Nick -
Unable to add the Custom Pipeline component in to the Visual Studio Tool Box
I have tried to create the custom Pipeline component to transfer the large message in Receive side,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.IO;
using Microsoft.BizTalk.Message.Interop;
using Microsoft.BizTalk.Component.Interop;
namespace Sample.LargeFilesDecoder
[ComponentCategory(CategoryTypes.CATID_PipelineComponent)]
[ComponentCategory(CategoryTypes.CATID_Encoder)]
[System.Runtime.InteropServices.Guid("25984614-BCFD-4c47-82FC-4A2300B76411")]
public class LargeFilesDecoder : IBaseComponent,
IComponentUI,
IComponent,
IPersistPropertyBag
#region IBaseComponent Members
public string Description
get
return "Pipeline component used to receive Larger Files through SFTP Ports";
public string Name
get
return "LargeFilesDecoder";
public string Version
get
return "1.0.0.0";
#endregion
#region IComponentUI Members
public IntPtr Icon
get
return new System.IntPtr();
public System.Collections.IEnumerator Validate(object projectSystem)
return null;
#endregion
#region IPersistPropertyBag Members
private string _largeFileLocation;
private int _thresholdSize;
public string LargeFileLocation
get { return _largeFileLocation; }
set { _largeFileLocation = value; }
public int ThresholdSize
get { return _thresholdSize; }
set { _thresholdSize = value; }
public void GetClassID(out Guid classID)
classID = new Guid("DBA77DFA-5D3E-4B85-8F78-1D6330B6BCA0");
public void InitNew()
public void Load(IPropertyBag propertyBag, int errorLog)
object val1 = null;
object val2 = null;
try
propertyBag.Read("LargeFileLocation", out val1, 0);
propertyBag.Read("ThresholdSize", out val2, 0);
catch (ArgumentException)
catch (Exception ex)
throw new ApplicationException("Error reading PropertyBag: " + ex.Message);
if (val1 != null)
_largeFileLocation = (string)val1;
if (val2 != null)
_thresholdSize = (int)val2;
public void Save(IPropertyBag propertyBag, bool clearDirty, bool saveAllProperties)
object val1 = (object)_largeFileLocation;
propertyBag.Write("LargeFileLocation", ref val1);
object val2 = (object)_thresholdSize;
propertyBag.Write("ThresholdSize", ref val2);
#endregion
#region IComponent Member
public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
if (_largeFileLocation == null || _largeFileLocation.Length == 0)
_largeFileLocation = Path.GetTempPath();
if (_thresholdSize == null || _thresholdSize == 0)
_thresholdSize = 4096;
if (pInMsg.BodyPart.GetOriginalDataStream().Length > _thresholdSize)
Stream originalStream = pInMsg.BodyPart.GetOriginalDataStream();
string largeFilePath = _largeFileLocation + pInMsg.MessageID.ToString() + ".msg";
FileStream fs = new FileStream(largeFilePath, FileMode.Create);
// Write message to disk
byte[] buffer = new byte[1];
int bytesRead = originalStream.Read(buffer, 0, buffer.Length);
while (bytesRead != 0)
fs.Flush();
fs.Write(buffer, 0, buffer.Length);
bytesRead = originalStream.Read(buffer, 0, buffer.Length);
fs.Flush();
fs.Close();
// Create a small xml file
string xmlInfo = "<MsgInfo xmlns='http://Sample.LargeFilesDecoder'><LargeFilePath>" + largeFilePath + "</LargeFilePath></MsgInfo>";
byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(xmlInfo);
MemoryStream ms = new MemoryStream(byteArray);
pInMsg.BodyPart.Data = ms;
return pInMsg;
#endregion
I have
Added .dll file in to the Global Assembly Cache (use gacutil)
Copied it the Pipeline Components folder (E:\Program Files (x86)\Microsoft BizTalk Server 2013\Pipeline Components)
Everything was successful, when I try to add the component to the Toolbox I get the message like below and cannot find the component in Toolbox.
Tried several times but still getting stuck in the same place. I am using Visual Studio 2013. Any help is greatly appreciated.Do not put the Assembly in the %\Pipeline Components folder. Pipeline Component Assemblies should be in the GAC only.
To correctly deploy a custom Pipeline Component, you can follow the steps in this Wiki Article:
http://social.technet.microsoft.com/wiki/contents/articles/26404.biztalk-deploying-custom-pipeline-components-in-biztalk-server-2006-and-higher.aspx
I have never seen that specific error before. Are you sure you're browsing from the Pipeline Components tab? -
Hi,
I want to create a custom JSF component. I've setup a new application containing 2 projects:
- a 'components' project, containing all the custom components
- a 'view' project, to test the created custom components.
There is dependency between the components project and the view project. In the view project, I added the
the Tld, in order to use my components in the project.
From the component palette, I can drop a component onto a .jspx page but after running the page, no output
is printed onto the screen. The HTML source code only contains my 'tag-name' (eg: <ctb:mytag/>)
Am I doing something wrong?
UIComponent:
import java.io.IOException;
import javax.faces.component.UIComponentBase;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
public class BasicComponent extends UIComponentBase {
public String getFamily() {
return "BasicComponent";
public void encodeBegin(FacesContext context) throws IOException {
ResponseWriter out = context.getResponseWriter();
out.write("Hello World");
}Tag
import javax.faces.component.UIComponent;
import javax.faces.webapp.UIComponentTag;
public class BasicComponentTag extends UIComponentTag {
public String getComponentType() {
return "BasicComponent";
public String getRendererType() {
return null;
}Tld entry:
<tag>
<name>BasicComponent</name>
<tag-class>BasicComponentTag</tag-class>
<body-content>JSP</body-content>
</tag>Thanks in advance,
Koen VerhulstThe body tag should be as follows
<bodycontent>JSP</bodycontent>
but the JSP will not work. Here is the file:
<?xml version='1.0' encoding='windows-1252'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces"
xmlns:afh="http://xmlns.oracle.com/adf/faces/html"
xmlns:cust="http://xmlns.oracle.com/adf/faces/customizable"
xmlns:cf="/WEB_INF/helloWorldLib.tld">
<jsp:output omit-xml-declaration="true" doctype-root-element="HTML"
doctype-system="http://www.w3.org/TR/html4/loose.dtd"
doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"/>
<jsp:directive.page contentType="text/html;charset=windows-1252"/>
<f:view>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1252"/>
<title>List of Values</title>
</head>
<body><h:form>
<cf:jsfhello hellomsg="This is it" />
</h:form></body>
</html>
</f:view>
</jsp:root>
Edited by: bongo2 on Oct 28, 2008 2:58 PM
Maybe you are looking for
-
I am having trouble mirroring my ipad with my new apple tv. I don't see any options for airplay. Any suggestions would be greatly appreciated. Thanks!
-
Can I sync my Lotus Organizer 6 (XP PC) with the iPod touch?
I wish to purchase the iPod touch and would like to use my Lotus Organizer 6.0 on my PC (Windows XP Pro) as my work calendar as I have been using it for many years. Will the PC sync with the iPod so that calendar and address information can be excha
-
IPhoto "hangs" when Loading Library
I'm having an issue with iPhoto, where, when I launch it, the app appears to open, but in the middle, where the photos are normally displayed, it hangs up saying "loading library", with the spinning gray cog wheel. No photos ever load, yet the progra
-
What is the proper way to back up Final Cut Pro x
What is the proper way to back up Final Cut Pro x? Final Cut Pro X & Motion 5 are the only two programs I do not have a hard copy for. Click and dragging the files from the applications folder to an external harddrive seems to simple to be correct. A
-
When I try to install Adobe Flash Player..now I can not open any desktop file
Lion...and now Maverick ...very update is a new trouble.. now with my mouse I can not get any desktop file...and also when I try to empty trash do not do anything.