private static bool saveFileInEDMS(ISDAFaxDBO faxObj, string localPath, string EDMSPath)
{
using (CopyWS.Copy copyService = new CopyWS.Copy())
{
copyService.Url = CopyURL;
copyService.Credentials = System.Net.CredentialCache.DefaultCredentials;
copyService.Credentials = new System.Net.NetworkCredential(username, password);
string[] destination = { EDMSPath };
CopyWS.CopyResult cResult1 = new CopyWS.CopyResult();
CopyWS.CopyResult cResult2 = new CopyWS.CopyResult();
CopyWS.CopyResult[] cResultArray = { cResult1, cResult2 };
CopyWS.FieldInformation fiRecordDate = new CopyWS.FieldInformation();
fiRecordDate.DisplayName = "Date";
fiRecordDate.Type = CopyWS.FieldType.DateTime;
fiRecordDate.Value = faxObj.MaturityDate.ToString("yyyy/MM/ddT00:00:00Z");
CopyWS.FieldInformation[] fis = { fiRecordDate };
FileStream strm = new FileStream(localPath, FileMode.Open, FileAccess.Read);
Byte[] fileContents = new Byte[strm.Length];
int ia = strm.Read(fileContents, 0, Convert.ToInt32(strm.Length));
strm.Close();
uint copyresult = copyService.CopyIntoItems(localPath, destination, fis, fileContents, out cResultArray);
if (copyresult == 0)
{
return true;
}
else
{
return false;
}
}
}
Wednesday, September 18, 2013
Sharepoint WS - Copy - Save local file to EDMS
Here is the method to save the local file in your computer and put it to the document library, my list name is EDMS.
Sharepoint WS - Lists - Get Document ID
Here is the function to get the document data and it will return the document ID in result string.
private static string GetDocID(string docname)
{
try
{
string result="";
using (ListWS.Lists listService = new ListWS.Lists())
{
listService.Url = ListURL;
listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
listService.Credentials = new System.Net.NetworkCredential(username, password);
XmlDocument doc = new XmlDocument();
XmlElement query = doc.CreateElement("Query");
XmlElement viewFields = doc.CreateElement("ViewFields");
XmlElement queryOptions = doc.CreateElement("QueryOptions");
//query.InnerXml = "<Where><Gt><FieldRef Name=\"ID\" />" +
// "<Value Type=\"Counter\">0</Value></Gt></Where>";
//docname = "STAR.BE_CIS_B_My%20%20test%20123.pdf";
query.InnerXml = "<Where><Eq><FieldRef Name=\"LinkFilename\" />" +
"<Value Type=\"Text\">"+ docname.Replace("%20"," ") + "</Value></Eq></Where>";
//query.InnerXml = "<Where><BeginsWith><FieldRef Name=\"LinkFilename\" />" +
// "<Value Type=\"Text\">S</Value></BeginsWith></Where>";
viewFields.InnerXml = "";
queryOptions.InnerXml = "<ViewAttributes Scope='Recursive'/>";
XmlNode nodes = listService.GetListItems("ListName", String.Empty, query, viewFields, string.Empty, queryOptions, null);
foreach (System.Xml.XmlNode node in nodes)
{
if (node.Name == "rs:data")
{
for (int i = 0; i < node.ChildNodes.Count; i++)
{
if (node.ChildNodes[i].Name == "z:row")
{
for (int j = 0; j < node.ChildNodes[i].Attributes.Count; j++)
{
Console.WriteLine(j + "|" + node.ChildNodes[i].Attributes[j].Name + "|" + node.ChildNodes[i].Attributes[j].Value);
}
result = node.ChildNodes[i].Attributes["ows_ID"].Value;
}
}
}
}
}
return result;
}
catch (Exception ex)
{
throw ex;
}
}
Monday, July 8, 2013
CSS Vertical text
Try this:
<style>.test {
writing-mode:tb-rl;
-webkit-transform:rotate(90deg);
-moz-transform:rotate(90deg);
-o-transform: rotate(90deg);
}
</style>
<p class="test">testing 12123123</p>
Result:
testing 12123123
Reference here
Friday, June 14, 2013
SQL to get the tables and its row count
Below is the SQL we can use to get the tables and its row count.
CREATE TABLE #counts
(
table_name varchar(255),
row_count int
)
EXEC sp_MSForEachTable @command1='INSERT #counts (table_name, row_count) SELECT ''?'', COUNT(*) FROM ?'
SELECT table_name, row_count FROM #counts ORDER BY table_name, row_count DESC
drop table #counts
Alternatively, can use this SQL, it will give the same result:
DECLARE @sql nvarchar(MAX)
SELECT
@sql = COALESCE(@sql + ' UNION ALL ', '') +
'SELECT
''' + s.name + '.' + t.name + ''' AS ''Table'',
COUNT(*) AS Count
FROM ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name)
FROM sys.schemas s
INNER JOIN sys.tables t ON t.schema_id = s.schema_id
ORDER BY
s.name,
t.name
EXEC(@sql)
Reference: here
CREATE TABLE #counts
(
table_name varchar(255),
row_count int
)
EXEC sp_MSForEachTable @command1='INSERT #counts (table_name, row_count) SELECT ''?'', COUNT(*) FROM ?'
SELECT table_name, row_count FROM #counts ORDER BY table_name, row_count DESC
drop table #counts
Alternatively, can use this SQL, it will give the same result:
DECLARE @sql nvarchar(MAX)
SELECT
@sql = COALESCE(@sql + ' UNION ALL ', '') +
'SELECT
''' + s.name + '.' + t.name + ''' AS ''Table'',
COUNT(*) AS Count
FROM ' + QUOTENAME(s.name) + '.' + QUOTENAME(t.name)
FROM sys.schemas s
INNER JOIN sys.tables t ON t.schema_id = s.schema_id
ORDER BY
s.name,
t.name
EXEC(@sql)
Reference: here
Thursday, June 13, 2013
[System.Web.HttpException]: {"File does not exist."}
Did you encounter this error? Dunno where exactly the error is??
Same me too..
Resolution is check your css file.
There could be an image reference from the css file that is not valid anymore.
That's the case for me.
So after I remove the css that refer to the invalid file path, it didn't give such error anymore.
Reference: here
Same me too..
Resolution is check your css file.
There could be an image reference from the css file that is not valid anymore.
That's the case for me.
So after I remove the css that refer to the invalid file path, it didn't give such error anymore.
Reference: here
Tuesday, May 28, 2013
Sharepoint webservice - create and get list of subfolders
To create folder
If you want to add subfolder, just need to change the rootfolder on the xmlCommand.
To get the list of subfolders (this can be used to check if subfolder exists)
Comment the getSubFolders(folderUrl, dt) if you do not want to drill down the subfolders.
Subfolders references: here and here
Dim webUrl as string = "http://localhost/sites/test1/"
Dim listWebService As New ListService.Lists()
listWebService.Url = webUrl + "/_vti_bin/lists.asmx"
listWebService.Credentials = System.Net.CredentialCache.DefaultCredentials 'New System.Net.NetworkCredential("user", "pwd")
Dim doc As New XmlDocument
Dim xmlCommand As String
Dim node1 As XmlNode
xmlCommand = "<Batch OnError='Continue' RootFolder='" & webUrl & "/Main'><Method ID='1' Cmd='New'><Field Name='ID'>New</Field><Field Name='FSObjType'>1</Field><Field Name='BaseName'>" & foldername & "</Field></Method></Batch>"
doc.LoadXml(xmlCommand)
Dim batchNode As XmlNode = doc.SelectSingleNode("//Batch")
node1 = listWebService.UpdateListItems("Main", batchNode)
ListService is the web service http://localhost/sites/test1/_vti_bin/lists.asmx added as reference.If you want to add subfolder, just need to change the rootfolder on the xmlCommand.
To get the list of subfolders (this can be used to check if subfolder exists)
Sub getSubFolders(parent As String, ByRef retTable As DataTable)
Dim query As String = "<mylistitemrequest><Query><Where><Eq><FieldRef Name=""FSObjType"" /><Value Type=""Lookup"">1</Value></Eq></Where></Query><ViewFields><FieldRef Name=""EncodedAbsUrl""/><FieldRef Name=""ID"" /><FieldRef Name=""Title"" /></ViewFields><QueryOptions><Folder>" & parent & "</Folder></QueryOptions></mylistitemrequest>"
Dim dt As DataTable = Nothing
Console.WriteLine("Parent is " & parent)
Using listProxy As ListService.Lists = New ListService.Lists()
listProxy.Url = webUrl + "/_vti_bin/lists.asmx"
listProxy.UseDefaultCredentials = True
Dim doc As XmlDocument = New XmlDocument()
doc.LoadXml(query)
Dim queryNode As XmlNode = doc.SelectSingleNode("//Query")
Dim viewNode As XmlNode = doc.SelectSingleNode("//ViewFields")
Dim optionNode As XmlNode = doc.SelectSingleNode("//QueryOptions")
Dim retNode As XmlNode = listProxy.GetListItems("Main", String.Empty, queryNode, viewNode, String.Empty, optionNode, Nothing)
Dim ds As DataSet = New DataSet()
Using sr As StringReader = New StringReader(retNode.OuterXml)
ds.ReadXml(sr)
End Using
If Not IsNothing(ds.Tables("Row")) Then
If ds.Tables("Row").Rows.Count > 0 Then
Dim folderUrls = From f In ds.Tables("Row").AsEnumerable() Select f("ows_EncodedAbsUrl")
dt = ds.Tables("Row").Copy()
For Each folderUrl As String In folderUrls
getSubFolders(folderUrl, dt)
Next
retTable.Merge(dt)
End If
End If
End Using
End Sub
Comment the getSubFolders(folderUrl, dt) if you do not want to drill down the subfolders.
Subfolders references: here and here
Tuesday, May 7, 2013
ODP.NET oracleexception with no error message :S
My oracle version is 11.2.0.2.
I tried to use ODAC 11.2.0.3 to connect to the database from my .net program.
And it threw this error ORA-1017: invalid username/password; logon denied when my password expires and I tried to change my password.
So I installed ODAC 11.2.0.2 and try to connect to the database in VB.Net however I got error OracleException with no error message -> Oracle.DataAccess.Client.OracleException: {""}
But when I code my program in C# it gave the error OracleException {"ORA-28001: the password has expired"}
Solution to this is to uninstall all the ODAC versions in my PC.
Then install ODAC 11.2.0.2 and now it should work fine.
Btw in order to change password when the password expired, u can use this method OpenWithNewPassword.
See my thread at Oracle forum here.
I tried to use ODAC 11.2.0.3 to connect to the database from my .net program.
And it threw this error ORA-1017: invalid username/password; logon denied when my password expires and I tried to change my password.
So I installed ODAC 11.2.0.2 and try to connect to the database in VB.Net however I got error OracleException with no error message -> Oracle.DataAccess.Client.OracleException: {""}
But when I code my program in C# it gave the error OracleException {"ORA-28001: the password has expired"}
Solution to this is to uninstall all the ODAC versions in my PC.
Then install ODAC 11.2.0.2 and now it should work fine.
Btw in order to change password when the password expired, u can use this method OpenWithNewPassword.
See my thread at Oracle forum here.
Subscribe to:
Posts (Atom)