Reg value table and check table
Hi Friends,
I have defined a value table(ZVALTAB) for a domain and defined the relation ship between check table(ZCHKTAB) and dependent table(ZDEPTAB). Here value table and check table both are different. My problem is while I am entering the values into check table, it is not restricting the values to enter into check table even those values are not in value table. And while I am entering values into the dependent table through the menu option Utilities->Create entries then also foreign key is not working. But when I use the SM30 then the foreign key is working. So can any body explain me when this value table restrict the values and why the option Utilities->Create entries is not validating the foreign key relation ship.
Sathish Reddy
Hi,
Value Table will just provide you the possible set of values. It won't restrict u for the wrong entries. Moreover whenever u enter entries thru Create entries no user interface is available. The constraints whatever we give is not at all stored in the Data Dictionary. Only the user interface which takes care all about this. Hence it wont restrict you. For this u have to create table maintenance generator for your table. Then it will restrict the values against check table.
Both Value table and Check table will provide u possible set of values. But only the check table will restrict the values.
Hope this will help u.
Similar Messages
-
Hi
If check table is there for field validation then what is the exclusive use and purpose of value table. Also viceversa?Check Table is for Field level Validation whereas Value table is for Domain Level Validations.
Value Table proposes table for check table.
I think you are clear with this.
more elaborate.
Check Table
The Check Table is the table used by system to check if a data exist or not exist.
While creating a table if you want to be sure that a field can have some values
and these are in a certain table, you can give IT this table as CHECK TABLE.
Value Table
This is maintained at Domain Level.
When ever you create a domain , you can entered allowed values. For example you go to Domain SHKZG - Debit/credit indicator.
Here only allowed values is H or S.
When ever you use this Domain, the system will forces you to enter only these values.
This is a sort of master check . .
To be maintained as a customization object.
This mean that if you want to enter values to this table you have to create a development request & transport the same.
Differences:
1)check table will carry out the check for input values for the table field being entered in any application
and value table will provide values on F4 help for that table field.
2)The check table defines the foreign keys and is part of the table definition.
The value table is part of the domain definition.
check table is validation at field level.
value table is at domain level.
Value table is defined at the domain level and is used to provide F4 help for all the fields which refer to that domain.
Check table is defined against a field in SE11 if you want the values in that field to be checked against a list of valid values. For e.g. if you are using the field matnr in a table you could define MARA as the check table.
Also while defining a check table SAP proposes the value table as check table by default. Referring to the previous example if you tried to define a check table for the matnr field SAP would propose MARA as the check table.
1. what is the purpose / use ?
so that the user can select values
from some master table , for that field !!!!
2. This is done by
CHECK TABLE (foreign key concept)
(and not value table)
3. When we create a check table for a field,
then
some DEFAULT table is PROPOSED
4. that DEFAULT table is nothing
but PICKED up from the domain of that field,
and shown from the value of VALUE TABLE.
CHECK TABLE -it is a parent table.
for example..
i have two tables ZTAB1 and ZTAB2.
I have one common field in both the tables,i can make any ztable to be the check table .If i make Ztab1 to be the check table then when i have to make an entry in ztab2 i will check whether ztab1 is having that value or not..
its also field level checking..
Valuetable-It is nothing but default check table.
one parent can have n number of child tables.For example
For ztable we have zchild1 and zchild2 tables r there.
Its domain level checking..When zchild2 uses the same domain as used by zchild1 then the system automatically generates a popup saying a check table already exists would u want to maintain it.
go to domain and then press the value tab u can see the valuetable at the end...
Please refer the links below,
d/r b/n check and value table?
wjhat is the exct difference between check table and value table
what is the check table and value table
check table and value table
Re: wjhat is the exct difference between check table and value table
http://www.sap-img.com/abap/difference-between-a-check-table-and-a-value-table.htm
<REMOVED BY MODERATOR>
GAURAV J.
Edited by: Alvaro Tejada Galindo on Aug 15, 2008 3:29 PM -
Reg: Fact table and Dimension table in Data Warehousing -
Hi Experts,
I'm not exactly getting the difference between the criteria which decide how to create a Fact table and Dimension table.
This link http://stackoverflow.com/questions/9362854/database-fact-table-and-dimension-table states :
Fact table contains data that can be aggregate.
Measures are aggregated data expressions (e. Sum of costs, Count of calls, ...)
Dimension contains data that is use to generate groups and filters.
This's fine but how does one decide which columns to consider for Fact table and which columns for Dimension table?
Any help is much appreciated.
Pardon me if this's not the correct place for this question. My first question in the new forum.
Thanks and Regards,
Ranit BiswasranitB wrote:
But my main doubt was - what is the criteria to differentiate between columns for Fact tables and Dimension tables? How can one decide upon the design?
Columns of a fact table will often be 'scalar' attributes of the 'fact' data item. A dimension table will often be 'compound' attributes of a 'fact'.
Consider employee information. The EMPLOYEE table can be a fact table. It might have scalar attribute columns such as: DATE_HIRED, STATUS, EMPLOYEE_ID, and so on.
Other related information that can't be specified as a single attribute value would often be stored in a 'dimension' table: ADDRESS, PHONE_NUMBER.
Each address requires several columns to define it: ADDRESS1, ADDRESS2, CITY, STATE, ZIP, COUNTRY. And an employee might have several addresses: WORK_ADDRESS, HOME_ADDRESS. That address info would be stored in a 'dimension' table and only the primary key value of the address record would be stored in the EMPLOYEE 'fact' table.
Same with PHONE_NUMBER. Several columns are required to define a phone number and each employee might have several of them. The dimension tables are used to help 'normalize' the data in the employee 'fact' table.
And that EMPLOYEE table might also be a DIMENSION table for other FACT tables. A DEVELOPER table might have an EMPLOYEE_ID column with a value that points to a 'dimension' row in the EMPLOYEE dimension table. -
REG:Internal table and Database table
Hi Xperts,
Can you tell me /give me a sample code so as to
Compare the data present in the database table and internal table.i.e
Wheher the data in the db table matches with the data in the internal table
Thanks.Hello,
First make sure that data is there in the internal table
TABLES : Declare your table example MARA, VBAK etc
TYPES: BEGIN OF ITAB1,
Declare your fields here
example
v_mat(10) type c,
v_code(5) type I,
END OF ITAB1.
IF NOT ITAB[] is INITIAL.
LOOP AT
END IF.
To compare the data with DB tables, read the database table and copy into the internal table ITAB2
Then compare the ITAB and ITAB1
IF ITAB1[] = ITAB2[]
END IF
See these links for [Creating Internal Tables|http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3660358411d1829f0000e829fbfe/content.htm]
[Comparing Internal Tables|http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb3841358411d1829f0000e829fbfe/content.htm]
See this for more about [Processing Internal Tables|http://help.sap.com/saphelp_nw04/helpdata/en/fc/eb36ae358411d1829f0000e829fbfe/content.htm]
Declaring the internal table in ABAP objects
[Thanks|http://chandranonline.blogspot.com/]
[Chandran|http://chandranonline.blogspot.com/] -
Difference between Temp table and Variable table and which one is better performance wise?
Hello,
Anyone could you explain What is difference between Temp Table (#, ##) and Variable table (DECLARE @V TABLE (EMP_ID INT)) ?
Which one is recommended to use for better performance?
also Is it possible to create CLUSTER and NONCLUSTER Index on Variable table?
In my case: 1-2 days transactional data are more than 3-4 Millions. I tried using both # and table variable and found table variable is faster.
Is that Table variable using Memory or Disk space?
Thanks Shiven:) If Answer is Helpful, Please VoteCheck following link to see differences b/w TempTable & TableVariable: http://sqlwithmanoj.com/2010/05/15/temporary-tables-vs-table-variables/
TempTables & TableVariables both use memory & tempDB in similar manner, check this blog post: http://sqlwithmanoj.com/2010/07/20/table-variables-are-not-stored-in-memory-but-in-tempdb/
Performance wise if you are dealing with millions of records then TempTable is ideal, as you can create explicit indexes on top of them. But if there are less records then TableVariables are good suited.
On Tables Variable explicit index are not allowed, if you define a PK column, then a Clustered Index will be created automatically.
But it also depends upon specific scenarios you are dealing with , can you share it?
~manoj | email: http://scr.im/m22g
http://sqlwithmanoj.wordpress.com
MCCA 2011 | My FB Page -
Number of Entries in Dimension Tables and Fact Tables
Hi all,
is there an easy way to check
- the number of entries in the dimension tables
- the number of entries in the fact table?
Thanks a lot
AlexHi Alex,
If u want to see the content of Dimension table and Fact table for a infocube then just right click on a particular info cube then select manage . Select coneten tab there , form there u can either select Fact table to see the fact table conten or Infocube content to see the Dimensiontable content.
Regards.. -
Fact table and dimension table
what is the difference b/w fact table and dimension table
A fact table contains numeric values and also contain composite key(i.e collection of foreign key) e.g.. sales and profit. Typically has two types of columns: those that contain facts and those that are foreign keys to dimension tables.
Dimension tables, also known as lookup or reference tables, contain the relatively static data in the warehouse. It contains character values E.g Customer_name,Customer_city.
Dimension tables store the information you normally use to contain queries. Dimension tables are usually textual and descriptive and you can use them as the row headers of the result set.
Rachna -
What is FACT table and FLAT table?
Hello,
Kindly tell me what is mean by FACT table and FLAT table and how it is use in the BI system ?also tell me can i see these table in the system ?if yes then please tell me the procedure to see the content of the FACT and FLAT table. And also tell me about the SID table and how to see it.Cube consists of Fact tables and Dimension tables.
The structure of these tables are "Flat".
Cube consists of two factables... 'F' - Fact table and 'E' - Fact table.
The naming convention will be..
/BIC/F<..Cube name..> for F Fact table
/BIC/E<..Cube name..> for E Fact table
Eg: for cube "EMPLOYEE" the names are..
/BIC/FEMPLOYEE
/BIC/EEMPLOYEE
The dimention tables have naming convention..
/BIC/D....
You can check these tables in SE11 or you can use the transaction LISTSCHEMA and then provide the Cube name.
SID's tables are used to link the master data with the dimention tables. -
Oracle Data Compression on SID tables and Dimension Tables
Hello Community,
We have had great success with Oracle compression on ODS tables that are no longer loaded.
We'd now like to move on to other types of BW tables that are very large.
OSS Note 701235 provides answers to questions concerning the possible use of Oracle compression together with SAP BW.
But the Note does not give suggestions for (or against) Oracle compression on SID tables or Dimension tables.
I believe both table types would exhibit the same behaviour : mostly inserts of new SID IDs and new DIM IDs, but few updates to existing SID or Dimension records. If this is true, then both are good candidates for oracle compression.
Do you also agree that this is the typical behaviour for SID tables and dimension tables ? And that these types of tables are good candidates for Oracle compression in a large BW system ?
Thanks kindly!
Keith HelfrichHi all,
Although this is an old thread I stumbled on during my own investigations I can provide some answers to your questions.
Table candidates for compression are found by these criteria
- Table size big enough?
- Long lifetime of object planned ?
- No or only rare structural changes for the table ?
- u201EUpdateu201C rate low : is your data mostly kind of u201Cread onlyu201D ?
-- for the wideley used rolling window partition techniques of
tables in BW this is not a problem: mostly INSERTu2019s in the
current partition not affecting other partitions
BW tables that can benefit from compression (see SAP notes 105047,701235)
- PSA tables with data that must be saved for a longer time
- ODS change log (no Updates of old data, only Inserts of new data)
- u201Ehistoricalu201C cubes wich get no changes in table structure anymore
Limitations
- normal Insert or Update statements are stored ALWAYS in uncompressed
format and must be compressed separately ( <= Oracle10g )
- Slight CPU overhead of compression, butu2026
-- CPU consumption is more than compensated by doing less I/O as
for Bulk loads or parallel processing
-- SAP BW transformations took a significant amount of CPU for
overall load-time into cubes caused by the application server not
the database
- Table must have not more than 255 fields
- Adding columns with an initial value or dropping columns require
uncompression of the complete table (strongest limitation)
Consider all this above and you can decide that tables that going through UPDATE's are
not good candidates for compression or tables that can change it's structure (like
Fact- or DIM tables) .
Now, my questions to you:
Wich Oracle version do you use?
Wich tool do you use for Oracle compression?
BRspace (can you give an example ?)
ALTER ... MOVE COMPRESS
bye
yk -
Attaching a custom table a check table.
Dear Freinds
i have created a custom , and i have made enhancment by a field
for the infotype 0022...
could any one tell how to make make this custom table as check table for the
field which i have created through enhancment in the infotype 22.
i.e when you user press F4 on the custom field when he creates in PA30 for the
education infotype i want to have all the data which is there in the custom table.
thanks in advance
regards
vamsihi,
you can go to transaction PM01 and edit the PS structure. go to the entry help check tab and press the search help button on that. Assign the Z table with the key fields referencing the field for which you are putting on the F4 help.
Generally it maps automatically.
I think this can solve ur problem
regards
manish
Reward points if helpful -
Attach User define tables and view table need add to database into my add-o
Hi there,
I want to deploy an addon, there are User define tables and view table need add to database.
I need some advice on some issues..
1. Can I attach User define tables and view table need add to database into my addon.
2. I wonder which chance is properly to add them, if add these user define objects in time of install and I can't get the enough information that connect to SQL server
Thanks for any help.Hi Weerachai,
Here's an example of how to create a user-defined table in code. My suggestion would be to check if it exists when your add-on starts up and then if not, create the tables, fields and objects.
'User Table
Private Sub CreateTable(ByVal sTable As String, ByVal sDescription As String, ByVal oObjectType As SAPbobsCOM.BoUTBTableType)
Dim oUserTablesMD As SAPbobsCOM.UserTablesMD
Dim iResult As Long
Dim sMsg As String
oUserTablesMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserTables)
If Not oUserTablesMD.GetByKey(sTable) Then
oUserTablesMD.TableName = sTable
oUserTablesMD.TableDescription = sDescription
oUserTablesMD.TableType = oObjectType
iResult = oUserTablesMD.Add()
If iResult <> 0 Then
oCompany.GetLastError(iResult, sMsg)
MessageBox.Show("Error Creating Table: " & sTable & " Error: " & sMsg)
End If
End If
System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserTablesMD)
End Sub
'User Field
Private Sub CreateField(ByVal sTable As String, ByVal sName As String, ByVal sDescription As String, _
ByVal iSize As Integer, ByVal aFieldType As SAPbobsCOM.BoFieldTypes, _
ByVal aSubType As SAPbobsCOM.BoFldSubTypes, ByVal sLink As String, _
ByVal bMandatory As SAPbobsCOM.BoYesNoEnum)
Dim oUserFieldsMD As SAPbobsCOM.UserFieldsMD
Dim oTable As SAPbobsCOM.UserTable
Dim iResult As Long
Dim sMsg As String
Dim i As Integer
Dim x As Integer
Dim bFound As Boolean = False
Dim oField As SAPbobsCOM.Field
oTable = oCompany.UserTables.Item(sTable)
For i = 0 To oTable.UserFields.Fields.Count - 1
oField = oTable.UserFields.Fields.Item(i)
'MessageBox.Show(oField.Name)
If oField.Name = "U_" & sName Then
bFound = True
End If
Next
System.Runtime.InteropServices.Marshal.ReleaseComObject(oTable)
If Not bFound Then
oUserFieldsMD = oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oUserFields)
oUserFieldsMD.TableName = "@" & sTable
oUserFieldsMD.Name = sName
oUserFieldsMD.Description = sDescription
oUserFieldsMD.Type = aFieldType
If aFieldType = SAPbobsCOM.BoFieldTypes.db_Alpha Or aFieldType = SAPbobsCOM.BoFieldTypes.db_Numeric Then
oUserFieldsMD.EditSize = iSize
Else
oUserFieldsMD.SubType = aSubType
oUserFieldsMD.Mandatory = bMandatory
End If
oUserFieldsMD.LinkedTable = sLink
iResult = oUserFieldsMD.Add()
If iResult <> 0 Then
oCompany.GetLastError(iResult, sMsg)
MessageBox.Show("Error Creating Field: " & sTable & "." & sName & " Error: " & sMsg)
End If
System.Runtime.InteropServices.Marshal.ReleaseComObject(oUserFieldsMD)
End If
End Sub
If you want to create a View I think you would have to use the RecordSet object. This will ensure that you don't have to log in to the database again
Hope it helps,
Adele -
How to import data into taxonomy tables and qualified tables
Hi ALL,
Can anybody suggest to import data into taxonomy tables and qualified tables, when is value mapping neccessary and what is partitioning? and what is the use of that partioning?Hello rehman
even i am facing same issue regading import of data in taxonomy table
. can we do it through import manager.
please provide me some details i will be very very thankful to u
my email - [email protected]
Thanks & regards
Himanshu -
Wat is the exact differences between clustered table and pooled table
hi,
can you tell me ravi...wat is the exact differences between clustered table and pooled table
with regards//
anilreddygHi Anil Reddy
Pooled Tables, Table Pools, Cluster Tables, and Table Clusters
These types of tables are not transparent in the sense that they are not legible or manageable directly using the underlying database system tools. They are managed from within the R/3 environment from the ABAP dictionary and also at runtime when they are loaded into application memory.Pool and cluster tables are logical tables. Physically, these logical tables are arranged as records of transparent tables. The pool and cluster tables are grouped together in other tables, which are of the transparent type. The tables that group together pool tables are known as table pools, or just pools; similarly, table clusters, or just
clusters, are the tables which group cluster tables.Not all operations that can be performed over transparent tables can be executed over pool or cluster tables.
For instance, you can manage these tables using Open SQL calls from ABAP, but not Native SQL.These tables are meant to be buffered and loaded in memory, because they are commonly used for storing internal control information and other types of data with no external (business) relevance. SAP recommends that tables of pool or cluster type be used exclusively for control information such as
program parameters, documentation, and so on. Transaction and application data should be stored in transparent tables.
Table Pools
From the point of view of the underlying DBMS as from the point of view of the ABAP dictionary, a table pool is a transparent table containing a group of pooled tables which, when created, were assigned to this table pool.
Field Type Description
TABNAME CHAR(10) Table name
VARKEY CHAR(n) Maximum key length n =< 110
DATALN INT2(5) Length of the VARDATA record returned
VARDATA RAW(m) Maximum length of the data varies according to DBMS
Table Clusters
Similarly to pooled tables, cluster tables are logical tables which, when created, are assigned to a table cluster. Therefore, a table cluster, or just cluster, groups together several tables of type clusters.Several logical rows from different cluster tables are brought together in a single physical record. The records
from the cluster tables assigned to a cluster are thus stored in a single common table in the database.A cluster contains a transparent cluster key which must be located at the start of the key of all logical cluster tables to be included in the cluster. As well, a cluster contains a long field (VARDATA), which contains the
data of the cluster tables for this key. If the data does not fit into a field, continuation records are created.
Field Type Description
CLKEY1 CHAR(*) First key fields
CLKEY2 CHAR(*) Second key field
CLKEYN CHAR(*) nth key field
PAGENO INT2(5) Number of the next page
TIMESTMP CHAR(14) Time stamp
PAGELG INT2(5) Length of the VARDATA record returned
VARDATA RAW(*) Maximum length of the data section; varies according to database system
Working with Tables
The dictionary includes many functions for working with tables. There are five basic operations you can perform on tables: display, create, delete, modify, copy. Please do not confuse displaying a table with displaying the table entries (table contents). In order to display a table, it must previously exist; otherwise the system will display an error message in the status bar. For the following example, the table TABNA is used. To display this table, from the main dictionary screen, enter the table name in the Object name
input field with the radio button selected next to Tables. Then, click on the Display button at the bottom of the screen, or press the F7 function key, or, alternatively,
select Dictionary object Display from the menu.
In this screen, you can see table information such as
¨ Table type, shown next to the name of the object. In the example, it is a transparent table.
¨ Short text description.
¨ Name of the user who made the last change, and the date of the change.
¨ Master language.
¨ Table status. On the screen, you can see this table is saved and active.
¨ Development class. For information on development classes, refer to Chap. 6.
Delivery class, which sets the maintenance group for the table. It controls how tables will behave during client copy procedures, upgrades, and so forth.¨
Tab. Maint. Allowed flag, which indicates whether you can generate a screen for maintaining table entries.
¨Then, on the lower part of the screen, you can see the table fields with all associated characteristics such as:
¨ Field name.
¨ Key indicator. When set, this field is the primary key, or part of it.
¨ Data element.
¨ Basic data type.
¨ Length.
¨ Check table.
¨ Short text, describing the field.
Additional information about the table can be displayed by selecting the corresponding functions from the menu or directly from the application toolbar, such as keys, indexes, or technical settings
Standard table:
The key access to a standard table uses a sequential search. The time required for an access is linearly dependent on the number of entries in the internal table.
You should usually access a standard table with index operations.
Sorted table:
The table is always stored internally sorted by its key. Key access to a sorted table can therefore use a binary search. If the key is not unique, the entry with the lowest index is accessed. The time required for an access is logarithmically dependent on the number of entries in the internal table.
Index accesses to sorted tables are also allowed. You should usually access a sorted table using its key.
Hash table:
The table is internally managed with a hash procedure. All the entries must have a unique key. The time required for a key access is constant, that is it does not depend on the number of entries in the internal table.
You cannot access a hash table with an index. Accesses must use generic key operations (SORT, LOOP, etc.).
Index table:
The table can be a standard table or a sorted table.
Index access is allowed to such an index table. Index tables can be used to define the type of generic parameters of a FORM (subroutine) or a function module.
Just have a look at these links:
http://help.sap.com/saphelp_nw04/helpdata/en/90/8d7304b1af11d194f600a0c929b3c3/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/74/83015785d811d295a800a0c929b3c3/frameset.htm
Regards
Sreeni -
How can I get data in flat file from Pool table and cluster table ?
Hi,
I am working in one Achiving project. My requirement is to get data into flat file from Cluster table and pool table.
Is there any tool avilable to download data into flat file from pool table and cluster table ?
if table name given in the selection screen then data will be downloaded into flat file.
waiting for quick response.
Best Regards,
BansidharData cannot be retrived directly form the cluster table
as the Cluster results are stored in Cluster Key say for example PCLkey
and form that Key we need to fetch the data
these clustes are not the part of PNP or PNPCE tables
for ur info kindly check -
Fact Table and Dimension Tables
Hi Experts, I'm creating custom InfoCubes for data coming from non-SAP source systems. I have two InfoCubes. Tha data is coming from like 10 tables. I have 10 DataSources created fo this and the data will be consolidated in Standard DSO before it will flow into 2 InfoCubes.
Now client wants to know before how much data will be there in InfoCubes in Fact table nad Dimension tables in both the InfoCubes. I have the total size of all the 10 tables from the sources given to me by the DBA. I wan not sure how I can convert that info for Fact table and Dimension table as I have not yet created these Infocubes.
Please help me with this on how I should address this.hi,
The exact data will be hard to give however you can reach at a round figure in your case.
You are consolidating the data from the tables that means that there is relation between the tables. Arrive at a rough figure based on the relation and the activity you are performing while consolidating the data of the tables.
For example, let us say we want to combine data for sales order and deliveries in a DSO.
Let Sales order has 1000 records and Delivery has 2000 records. Both the tables have a common link (Sales Order).In DSO you are combining the data that means the data will be at the most granular level consist of Delivery data, so the maximum no of records which the consolidated DSO can have is 2000.
regards,
Arvind.
Maybe you are looking for
-
Can't send email from Mac MAIL
I am setting up my new MacBook -- specifically the Mac MAIL, and intend to include a yahoo account and my new mac.com account. So far, through Mac MAIL, I am able to send and receive email with my mac.com account, but can only receive email on my yah
-
I had turned on Find my iphone almost an hour after it was stolen, but it didnt have data service active when it was stolen (cus I always used wifi), any location was shown, so i decided to turn it off, a message told me that if i deleted the iphone
-
Conversion of Date into Number of Days
Hai All, Can anyone pls tell how to convert the Date format into Number of days. For example I have 2 dates, 25.03.2009 and 25.02.2009. I have to take the difference of these two dates, means its 30 days. Later I have to move this 30 days
-
Good Morning. I'm a little perplexed and hoping someone can straighten me out... I created a member to track outstanding shares of stock, which gets updated quarterly to calculate Earnings per Share. I used the Time Balance funstionality to so that,
-
Non-Apple Product for Powerbook G4 12"
I often do chatting online with friends, so i wish to have a webcam, can I use NON-Apple webcam for my powerbook G4 12" 1GHz Combo Drive? Mine is a Combo drive, I wish to upgrape it to DVD burner, again! Any NON-Apple DVD burner(internal/external) fo